IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation d'OS Assembleur Discussion :

[ld / ASM + C] Incompatibilité d'architecture


Sujet :

Programmation d'OS Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Par défaut [ld / ASM + C] Incompatibilité d'architecture
    Bonjour. Par curiosité,j'essaie de faire un petit noyau qui boote et affiche bonjour ou un truc du style. Je suis donc le tuto ici:
    http://aaprog.free.fr/?page=os/firstcompile

    Le seul problème est que, après avoir tapé ces commandes
    nasm -s -f elf -w+orphan-labels -o start.o start.asm
    gcc -c -o main.o -m386 -Wall -Werror -nostdlib -nostartfiles -nodefaultlibs main.c
    ld -T link.ld --oformat=elf32-i386 -Map map.txt -o kernel.bin start.o main.o
    j'ai l'erreur suivante que je n'arrive pas a faire partir (j'ai un processeur 64 bits) :
    ld: i386 architecture of input file `main.o' is incompatible with i386:86-64 output

  2. #2
    Membre Expert
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Par défaut
    Bonjour,

    Quelles sont les réponses données par les commandes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    file start.o
    file main.o
    file kernel.bin
    Il semblerait que ces 3 binaires n'aient pas été compilés pour la même architecture.

  3. #3
    Membre chevronné
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Par défaut
    Merci! main.o ne donne pas un bon resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    main.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
    Le seul truc c'est que je n'arrive pas a trouver comment compiler pour i386

  4. #4
    Membre chevronné Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Par défaut
    À tout hasard ça change quelque chose si tu utilises -m32 au lieu de -m386 ?

  5. #5
    Membre chevronné
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Par défaut
    Non ça ne marche pas ...

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Par défaut
    Bonjour, tu es sous Windows avec cygwin ou mingw je suppose ? Si c'est le cas, compile un compilateur GCC Cross pour i386 ( pourquoi pas i586 pour faire des choses intéressantes ? :p ), et si t'es sous Linux, essaie quand même

    Un petit lien pour t'aider : http://www.osdev.org/osfaq2/index.ph...Cross-Compiler .

    Un autre conseil, utilise fasm ( flatassembler.net ), il a l'air simple, produit des binaires "plates" pour les architectures x86 et est développé initialement pour la programmation OS

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/01/2012, 10h43
  2. Allocation dynamique de mémoire en asm
    Par narmataru dans le forum Assembleur
    Réponses: 7
    Dernier message: 17/12/2002, 22h31
  3. Reboot en asm ou C++
    Par Juke dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 17/10/2002, 09h11
  4. [TP]code asm dans une procedure
    Par M.Dlb dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 17/08/2002, 20h43
  5. architecture
    Par pons dans le forum CORBA
    Réponses: 3
    Dernier message: 11/06/2002, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo