Impossible de trouver crtn.o, reliant 32 bits sur 64 bits du système d'
Je suis d'essayer d'assembler certains de code 32 bits à l'aide de MSNA et de la GCC sur un système 64 bits. J'ai utiliser les deux commandes suivantes
nasm -f elf32 -g -F stabs coc.asm
gcc -m32 -o coc coc.o
MSNA semble faire très bien, mais LD se plaint:
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: ld returned 1 exit status
Je suis sur Ubuntu 11.10, et j'ai vérifié et je suis sûr que la libc est installé.
double possible de la Compilation de problèmes: impossible de trouver crt1.o
OriginalL'auteur | 2012-03-21
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas de montage, mais la liaison d'un fichier exécutable, qui a besoin de OS fichiers de démarrage.
Il semble que vous n'avez pas
gcc-*-multilib
installé, qui contient les fichiers nécessaires: http://packages.ubuntu.com/oneiric/amd64/gcc-4.6-multilib/filelistOriginalL'auteur rubenvb
Vous devez installer
gcc-multilib
obtenir la bonne 32-Bit libOriginalL'auteur x539
J'ai eu un problème similaire sur ubuntu 11.10. Voir ma question sur ce sujet. Ce qui a aidé pour moi, était de relier le
crt*.o
à/lib/
. Après cela, je n'ai jamais eu d'autres problèmes avec cette question. Un peu plus d'un cludge, mais pour moi, il a résolu les problèmes.OriginalL'auteur LiKao