Problème avec LD

_benjamindu11_ -  
thejohncrafter Messages postés 2 Statut Membre -
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

  1. _benjamindu11_
     
    Ca n'intéresse personne ?
    0
  2. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  3. thejohncrafter Messages postés 2 Statut Membre
     
    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