Portál AbcLinuxu, 10. května 2025 08:55

Dotaz: Kompilace FritzOS

11.7.2007 17:12 freeman-half
Kompilace FritzOS
Přečteno: 460×
Odpovědět | Admin

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

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Luboš Doležel (Doli) avatar 11.7.2007 17:18 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Kompilace FritzOS
Odpovědět | | Sbalit | Link | Blokovat | Admin
Místo toho gcc použijte g++, stačilo by hledat.
11.7.2007 17:40 freeman-half
Rozbalit Rozbalit vše Re: Kompilace FritzOS
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bohuzel jsem to uz skousel a nemelo to na vysledek zadny vliv

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$ 

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.