Partage
  • Partager sur Facebook
  • Partager sur Twitter

Assembleur erreur de version ( x86_64 )

Sujet résolu
    20 mars 2018 à 14:21:44

    Salut !

    Mon problème est le suivant : je n'arrive pas à compiler en asm.

    Lorsque je fais un uname - a, ceci s'affiche : "Linux juan-HP-EliteBook-840-G2 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:44:48 UTC 2015 i686 i686 i686 GNU/Linux"

    Mon pc est bien un 64 bit or j'ai l'impression que mon linux ne le reconnaît pas.

    J'essaye de compiler comme ceci :

    nasm -f elf64 -o hello.o hello.asm               // pas d'érreurs ici
    ld hello.o -o hello                                         // ici je recois l'erreure suivante : ld : architecture i386:x86-64 du fichier d'entrée « hello.o » est incompatible avec la sortie i386

    Voilà, je suis un peu dans le flou, j'espère vous avoir donné assez d'info afin que vous puissiez m'aider.

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      21 mars 2018 à 19:04:49

      Salut,

      Il faut donner aux compilateurs les bons arguments de compilations. i386, c'est pour le 32 bits. Or, tu programmes en x86_64 (sous NASM).

      Tu dois donc modifier un des arguments :

      elf_i386

      au lieu de 

      elf64
      • Partager sur Facebook
      • Partager sur Twitter

      Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

        24 mars 2018 à 13:14:45

        Alors malheureusement je reçois une erreur la ou il n'y en avait pas avant.

        J'ai donc essayé comme ceci : "nasm -f elf_i386 -o hello.o hello.asm" et l'erreure suivante s'affiche :

        "nasm: fatal: unrecognised output format `elf_i386' - use -hf for a list type `nasm -h' for help"

        Que faire maintenant ? o_O

        -
        Edité par juanbillet1 24 mars 2018 à 13:27:39

        • Partager sur Facebook
        • Partager sur Twitter
          24 mars 2018 à 13:43:35

          "Attention" aux édits, nous ne sommes pas notifiés.

          Je ne fais pas de NASM, donc je ne pourrais peut être pas te venir en aide concertant les arguments de compilations, mais pourrais-tu les montrer ? Peux-être as-tu modifier le mauvais.

          -
          Edité par vanaur 24 mars 2018 à 13:44:04

          • Partager sur Facebook
          • Partager sur Twitter

          Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

          Anonyme
            24 mars 2018 à 15:39:30

            Salut !

            Si tu veux assembler en 32 bits, l'option est "-felf32" ou plus simplement "-felf" à la place de "-felf64". Toutefois, si tu as tapé du code 64 bits, tu auras des erreurs.

            Quand même, il faudrait arrêter avec le 32 bits...

            -
            Edité par Anonyme 24 mars 2018 à 15:39:41

            • Partager sur Facebook
            • Partager sur Twitter

            Assembleur erreur de version ( x86_64 )

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown