web-dev-qa-db-fra.com

Problème lors de la compilation d'un fichier binaire 32 bits sur une machine 64 bits

J'essaie de compiler un programme c en binaire 32 bits au lieu de 64 bits. J'ai commencé en ajoutant simplement -m32 et j'ai eu quelques erreurs. Googling un peu, je suis tombé sur une note pour installer ia32-libs. L'exécution de apt-get install ia32-libs a généré une notification indiquant qu'elle était déjà installée et à la version la plus récente.

Il y a une chaîne de bibliothèques, chacune incluant la suivante, jusqu'à son échec:

/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory

Il semble y avoir des versions 32 bits de l’autre inclut /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

Qu'est-ce que je rate?

10
Matt

La réponse de Lekensteyn était en conflit avec beaucoup de paquets existants pour moi (sur oneiric 64 bits).

J'ai plutôt fait ceci, qui a tiré dans le paquet libc6-dev-i386:

apt-get install gcc-multilib
30
A B

ia32-libs contient seulement des bibliothèques de compatibilité qui n'ont pas encore été migrées vers Multi Arch. Pour compiler des bibliothèques 32 bits, vous devez installer les bibliothèques 32 bits et les fichiers de développement pour C:

Sudo apt-get install libc6-dev:i386

Voir aussi: La fonctionnalité multi-architecture de 11.10 signifie-t-elle la mort de la force - l'architecture est installée?

7
Lekensteyn