Kann nicht finden, crtn.o, verknüpfen 32 bit-code auf 64-bit-system
Ich bin versucht zu montieren einige 32-bit-code mit NASM und GCC auf einem 64-bit-system. Ich verwenden Sie die folgenden zwei Befehle
nasm -f elf32 -g -F stabs coc.asm
gcc -m32 -o coc coc.o
NASM zu tun scheint in Ordnung, aber LD beschwert sich:
/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
Mir läuft Ubuntu 11.10, und ich habe überprüft, und ich bin mir ziemlich sicher, dass libc installiert ist.
- mögliche Duplikate von Kompilierungs-Probleme: kann nicht finden, crt1.o
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nicht zusammenbauen, aber die Verlinkung eine ausführbare Datei, die Bedürfnisse der OS-startup-Dateien.
Es scheint, dass Sie nicht haben
gcc-*-multilib
installiert, die enthält die notwendigen Dateien: http://packages.ubuntu.com/oneiric/amd64/gcc-4.6-multilib/filelistZu installieren, müssen Sie
gcc-multilib
zu Holen Sie sich die richtige 32-Bit-libIch hatte ein sehr ähnliches problem unter ubuntu 11.10. Siehe meine Frage auf SO über diese. Was geholfen hat bei mir, war die Verknüpfung der
crt*.o
zu/lib/
. Nach, dass ich hatte nie andere Probleme mit diesem Thema. Ein bisschen mehr von einem cludge, aber für mich ist es die Probleme gelöst.