Problème avec LD

Fermé
_benjamindu11_ - Modifié par _benjamindu11_ le 12/09/2012 à 19:58
thejohncrafter Messages postés 2 Date d'inscription vendredi 12 septembre 2014 Statut Membre Dernière intervention 13 septembre 2014 - 13 sept. 2014 à 20:02
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_
13 sept. 2012 à 12:59
Up... :(
0
_benjamindu11_
13 sept. 2012 à 18:28
Re-up :(
0
_benjamindu11_
13 sept. 2012 à 19:54
Ca n'intéresse personne ?
0
_benjamindu11ç
14 sept. 2012 à 19:07
up à nouveau...
0

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

Posez votre question
_benjamindu11_
15 sept. 2012 à 08:15
Toujours personne ?
0
thejohncrafter Messages postés 2 Date d'inscription vendredi 12 septembre 2014 Statut Membre Dernière intervention 13 septembre 2014
12 sept. 2014 à 19:45
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 vendredi 12 septembre 2014 Statut Membre Dernière intervention 13 septembre 2014
13 sept. 2014 à 20:02
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