Wątek przeniesiony 2014-08-28 16:45 z Off-Topic przez ŁF.

OS Błąd kompilacji

0

Witam
Jak w temacie - mam problem z kompilacją najprostszego jądra systemu operacyjnego.
Źródła w załączniku.
Wiem że problem jest w tym iż mam system windows 7 64bit

Sama kompilacja przebiega prawidłowo a przy łączeniu wyskakują błędy na których się nie znam.
Treść błędu :

ks.o: file not recognized: File format not recognized

Kod TEGO jądra mam z tej strony:
http://www.osdever.net/tutorials/view/writing-a-simple-c-kernel

0
nasm -f aout kernel_start.asm -o ks.o

spróbuj tutaj dać win32 albo obj zamiast tego aout... bo to jest problemem..
ale nie wiem jak to potem będzie współgrało z resztą.

0

Ciekawi mnie tak ogólnie czemu na 32bit się uda? Może muszę kompilator 64 bit ?

EDIT1
Zrobiłem @Azarien oto wynik:

ld: cannot perform PE operations on non PE output file 'kernel.bin'.
dałem win32

ks.o: file not recognized: File format not recognized
dałem obj

0

zostaw win32 i spróbuj dodać -oformat bin do wywołania ld.

i jeszcze raz: powinno się skompilować, ale nie gwarantuję działania wynikowego programu ;-)

1

ld: cannot find bin: No such file or directory

Coś takiego?

nasm -f win32 kernel_start.asm -o ks.o
gcc -c kernel.c -o kernel.o
ld -T link.ld -oformat bin -o kernel.bin ks.o kernel.o

0

Mała porada dla każdego kto znajdzie ten wątek i będzie bawił się w kompilację własnego OS.
Kompilacja na systemie 64bit może (patrz na mój przypadek) powodować problemy więc lepiej działać na systemie 32bit.

1 użytkowników online, w tym zalogowanych: 0, gości: 1