L’option -m32 ne fonctionne pas avec gcc mais fonctionne avec g ++

J’essayais de comstackr une application pour cible 32 bits sur une machine x86_64 ubuntu 12.04. J’ai installé les paquets requirejs en utilisant

sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386 

La première commande fonctionne en générant la version 32 bits. Cependant, la deuxième commande sort en erreur

 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 

Quelqu’un pourrait-il m’expliquer pourquoi gcc ne fonctionne pas? Est-ce qu’il me manque des bibliothèques?

Merci!



J’ai mis à niveau mon g ++ à la version 4.8 et g ++ -m32 a également cessé de fonctionner. Installation de g ++ – L’option -m32 créée avec 4.8-multilib fonctionne avec gcc et g ++.

Je pense que vous avez besoin de ce paquet d’Ubuntu:

 sudo apt-get install ia32-libs 

Confirmez également que vous utilisez gcc multilib avec gcc -v . Si ce n’est pas le cas, réinstallez gcc-multilib .