Portál AbcLinuxu, 10. května 2025 08:55
Mam problem s kompilaci FritzOS. Nejedna se o zadne linuxove distro. Je to uplne obycejny OS ke "studijnim" ucelum. Vsechny potrebne balicky a knihovny mam, jenze mi to stale nejde. Zdrojaky obsahuji i shellovy script ktery se za vas postara o instalaci, neni obzvlast slozity:
----------------------------------------------------------------------
# Simple way to compile
nasm -f bin ../source/boot/boot.asm -o ../bins/boot.bin
nasm -f aout ../source/kernel/kernelasm.asm -o ../source/object/kernelasm.o
gcc -c ../source/kernel/kernel32.cpp -o ../source/object/kernel32.o
# Put kernelasm.o first so it IS loaded first!
ld -Ttext=0x9000 -o ../source/temp/kernel32 ../source/object/kernelasm.o ../source/object/kernel32.o -e 0x0
objcopy -R .note -R .comment -S -O binary ../source/temp/kernel32 ../bins/kernel32.sys
----------------------------------------------------------------------
Skousel jsem spustet jednotlive prikazu jak jdou za sebou a zjistil jsem ze prikaz:
----------------------------------------------------------------------
ld -Ttext=0x9000 -o ../source/temp/kernel32 ../source/object/kernelasm.o ../source/object/kernel32.o -e 0x0
----------------------------------------------------------------------
hazi tuchle chybu
----------------------------------------------------------------------
freeman@freemansPC:~/Desktop/pk0.7.1/linuxinst$ ld -Ttext=0x9000 -o ../source/temp/kernel32 ../source/object/kernelasm.o ../source/object/kernel32.o -e 0x0
../source/object/kernel32.o: In function `doprintf(char const*, unsigned char*, int (*)(unsigned int, void**), void*)':
kernel32.cpp:(.text+0x50b): undefined reference to `__stack_chk_fail'
../source/object/kernel32.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
----------------------------------------------------------------------
Mam nejnovejsi UBUNTU s GCC 4.1.2 Dekuji vsem za pomoc
freeman@freemansPC:~/Desktop/pk0.7.1/linuxinst$ ./install.sh
../source/object/kernel32.o: In function `doprintf(char const*, unsigned char*, int (*)(unsigned int, void**), void*)':
kernel32.cpp:(.text+0x50b): undefined reference to `__stack_chk_fail'
../source/object/kernel32.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
objcopy: '../source/temp/kernel32': No such file
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0,53912 seconds, 0,9 kB/s
dd: opening `../bins/kernel32.sys': No such file or directory
freeman@freemansPC:~/Desktop/pk0.7.1/linuxinst$ cat install.sh
# Simple way to compile & put on a floppy
nasm -f bin ../source/boot/boot.asm -o ../bins/boot.bin
nasm -f aout ../source/kernel/kernelasm.asm -o ../source/object/kernelasm.o
g++ -c ../source/kernel/kernel32.cpp -o ../source/object/kernel32.o
# Put kernelasm.o first so it IS loaded first!
ld -Ttext=0x9000 -o ../source/temp/kernel32 ../source/object/kernelasm.o ../source/object/kernel32.o -e 0x0
objcopy -R .note -R .comment -S -O binary ../source/temp/kernel32 ../bins/kernel32.sys
dd if=../bins/boot.bin of=/dev/fd0
dd if=../bins/kernel32.sys seek=1 of=/dev/fd0
freeman@freemansPC:~/Desktop/pk0.7.1/linuxinst$
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.