-m32 option doesn't work with gcc but works wi

2019-06-28 04:29发布

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!



2条回答
老娘就宠你
2楼-- · 2019-06-28 05:09

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++.

查看更多
Evening l夕情丶
3楼-- · 2019-06-28 05:18

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.

查看更多
登录 后发表回答