Estaba tratando de compilar una aplicación para un objetivo de 32 bits en una máquina x86_64 ubuntu 12.04. Instalé los paquetes requeridos usando
sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386El primer comando funciona generando la versión de 32 bits. Sin embargo, el segundo comando falla
1. g++ -m32 hello.c 2. gcc -m32 hello.c skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/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.8/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: cannot find -lgcc_s¿Alguien podría explicarme por qué gcc no funciona? ¿Me estoy perdiendo algunas bibliotecas?
¡Gracias!
Actualicé mi g ++ a 4.8 y g ++ -m32 también dejó de funcionar. La instalación de g++-4.8-multilib hizo que la opción -m32 funcionara tanto con gcc como con g++.
Creo que necesitas este paquete de Ubuntu:
sudo apt-get install ia32-libs También confirme que está usando gcc multilib con gcc -v . Si no, establezca la ruta correspondiente o vuelva a instalar gcc-multilib .