Problème avec LD

_benjamindu11_ -  
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
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

_benjamindu11_
 
Up... :(
0
_benjamindu11_
 
Re-up :(
0
_benjamindu11_
 
Ca n'intéresse personne ?
0
_benjamindu11ç
 
up à nouveau...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
_benjamindu11_
 
Toujours personne ?
0
thejohncrafter Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
thejohncrafter Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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é.
0