Problème avec LD
_benjamindu11_
-
thejohncrafter Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
thejohncrafter Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Et oui je suis de retour (assez vite tout de même...)
J'ai décidé de compiler mon OS sous cygwin donc.
j'ai fait
pour chaque fichier.
Puis j'ai lancé cette commande :
Et là, c'est le drame.
ou un truc qui y ressemble.
Bref ça m'énerve et j'aimerais trouver une solution parce que la VM sous VirtualBox c'est bien mais c'est lassant à la longue...
Sinon : La compilation avec gcc se passe bien.
Il n'y a que le link qui foire.
Sinon si vous me trouvez autre chose, il faut que je puisse décaler les adresses de 0x1000 et que la sortie soit en pur bytecode.
Merci d'avance :)
Et oui je suis de retour (assez vite tout de même...)
J'ai décidé de compiler mon OS sous cygwin donc.
j'ai fait
gcc -c (fichier.c) -o (fichier de sortie .o)
pour chaque fichier.
Puis j'ai lancé cette commande :
ld --oformat binary -Ttext 1000 kernel.o screen.o gdt.o lib.o -o kernel
Et là, c'est le drame.
ld : cannot perform pe operations on non pe output file
ou un truc qui y ressemble.
Bref ça m'énerve et j'aimerais trouver une solution parce que la VM sous VirtualBox c'est bien mais c'est lassant à la longue...
Sinon : La compilation avec gcc se passe bien.
Il n'y a que le link qui foire.
Sinon si vous me trouvez autre chose, il faut que je puisse décaler les adresses de 0x1000 et que la sortie soit en pur bytecode.
Merci d'avance :)
7 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour !
J'ai exactement le même problème... Tu ne serais pas allé sur http://a.michelizza.free.fr/pmwiki.php?n=TutoOS.TutoOS par hasard ? C'est avec les instructions de ce site que j'ai eu mes erreurs...
Je te re-contacte dés que j'ai quelque chose.
J'ai exactement le même problème... Tu ne serais pas allé sur http://a.michelizza.free.fr/pmwiki.php?n=TutoOS.TutoOS par hasard ? C'est avec les instructions de ce site que j'ai eu mes erreurs...
Je te re-contacte dés que j'ai quelque chose.
C'est bon !
J'ai trouvé une solution :
Si tu veux faire un .exe Windows :
gcc -Wall -pedantic-errors kernel.c -o kernel.exe -nostdlib -Wl,-Ttext=0x20000,-nostdlib
Mais ça va rajouter du code, et c'est moyen...
Don il faut que tu fasse :
gcc -Wall -pedantic-errors kernel.c -o kernel.exe -nostdlib -Wl,-Ttext=0x20000,-nostdlib
objcopy -O binary -j .text kernel.exe kernel.bin
Regarde ici : http://www.websofia.com/2011/10/linking-a-flat-binary-from-c-with-mingw/
C'est là que j'ai tout trouvé.
J'ai trouvé une solution :
Si tu veux faire un .exe Windows :
gcc -Wall -pedantic-errors kernel.c -o kernel.exe -nostdlib -Wl,-Ttext=0x20000,-nostdlib
Mais ça va rajouter du code, et c'est moyen...
Don il faut que tu fasse :
gcc -Wall -pedantic-errors kernel.c -o kernel.exe -nostdlib -Wl,-Ttext=0x20000,-nostdlib
objcopy -O binary -j .text kernel.exe kernel.bin
Regarde ici : http://www.websofia.com/2011/10/linking-a-flat-binary-from-c-with-mingw/
C'est là que j'ai tout trouvé.