I was trying to compile an application for 32 bit target on x86_64 ubuntu 12.04 machine. I installed the required packages using
sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386
The first command works generating the 32 bit version. However, the second command errors out
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
Could anyone explain to me why gcc fails to work. Am I missing some libraries?
Thanks!
I upgraded my g++ to 4.8 and g++ -m32 stopped working too. Installing g++-4.8-multilib made -m32 option work with both gcc and g++.
I think you need this package of Ubuntu:
sudo apt-get install ia32-libs
Also confirm that you are using gcc multilib
with gcc -v
. If not set path accordingly or re-install gcc-multilib
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With