Problemi nella compilazione di un file binario a 32 bit su una macchina a 64 bit


13

Sto cercando di compilare un programma ac come binario a 32 bit anziché a 64 bit. Ho iniziato semplicemente aggiungendo -m32e ho ricevuto alcuni errori. Cercando su Google un po 'mi sono imbattuto in una nota per installare ia32-libs. L'esecuzione ha apt-get install ia32-libscomportato una notifica che era già installata e nella versione più recente.

Esiste una catena di librerie ognuna compresa la successiva fino a quando non fallisce:

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

Sembra includere le versioni a 32 bit delle altre include /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

Cosa mi sto perdendo?

Risposte:


39

La risposta di Lekensteyn è in conflitto con molti pacchetti esistenti per me (su oneiric a 64 bit).

Invece ho fatto questo, che ha estratto il libc6-dev-i386pacchetto:

apt-get install gcc-multilib

7

ia32-libscontiene solo alcune librerie di compatibilità non ancora migrate su Multi Arch. Per compilare librerie a 32 bit, è necessario installare le librerie a 32 bit e i file di sviluppo per C:

sudo apt-get install libc6-dev:i386

Vedi anche: La funzionalità multiarch in 11.10 significa la morte della forza - installazioni di architettura?


L'installazione ha libc6-dev:i386insistito per rimuovere l'intera suite di compilatori gnu (che mi ha dato un piccolo infarto) ma dopo aver usato sudo apt-get install build-essentialtutto ha funzionato perfettamente.
Matt,

Per me, ha anche disinstallato nvidia-current ... reinstallato senza problemi però.
Jeff,

1
Si noti che l'opzione fornita da alberge sembra migliore in quanto non rimuoverà tonnellate di altre cose per l'installazione delle librerie a 32 bit.
Fabio Zadrozny,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.