2012-03-21 15 views
7

Estoy intentando ensamblar un código de 32 bits usando NASM y GCC en un sistema de 64 bits. Yo uso los dos comandos siguientesNo se puede encontrar crtn.o, vinculando el código de 32 bits en el sistema de 64 bits

nasm -f elf32 -g -F stabs coc.asm 
gcc -m32 -o coc coc.o 

NASM parece que lo hace muy bien, pero se queja de LD:

/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 

Estoy corriendo Ubuntu 11.10, y he comprobado y estoy bastante seguro de que está instalado libc.

+1

posible duplicado de [Problemas en la compilación: no puede encontrar crt1.o] (http://stackoverflow.com/questions/6329887/compiling-problems- can not-find-crt1-o) – user2284570

Respuesta

0

que tenía un problema muy similar en ubuntu 11.10. See my question on SO about this. Lo que me ayudó fue vincular el crt*.o al /lib/. Después de eso, nunca tuve otros problemas con este problema. Un poco más de un escándalo, pero para mí resolvió los problemas.

2

Necesita instalar gcc-multilib para conseguir el correcto 32 bits lib

Cuestiones relacionadas