Sto usando un sistema a 64 bit ma voglio un set di binari a 32 bit. Quali opzioni devo passare a uno script di configurazione per generare un makefile a 32 bit/x86?Costruisci 32 bit su Linux 64 bit usando uno script di configurazione automake?
risposta
Passando il seguente argomento per configurare lo script mi ha permesso di costruire la libreria a 32 bit a 64 bit su Linux
./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
Non funziona per me :(Per favore aiutatemi su http://stackoverflow.com/questions/13780319/cant-build-32bit-wine-on-64bit-linux – m93a
Non ha funzionato per me quando ho provato a costruire una libreria mi ha dato il messaggio 'configure: errore: il compilatore C++ non è in grado di creare eseguibili'. –
Questa risposta è incompleta, motivo per cui a volte è possibile ottenere l'errore" il compilatore non può creare gli eseguibili. "Vedere la risposta in questo stesso thread – volpato
Supponendo gcc/g ++:
CPPFLAGS=-m32 ./configure ...
Grazie per la risposta. Lo script configure imposta ancora il tipo di sistema di build e il tipo di sistema host su x86_64-unknown-linux-gnu. Sai come scavalcare questi? –
risposta di Jack è incompleta.
È necessario il supporto di compilatore/libc per la compilazione a 32 bit. In alcune distribuzioni come Ubuntu, che cosa dovete fare è installare i pacchetti gcc-multilib
e/o g++-multilib
:
sudo apt-get install gcc-multilib g++-multilib
Poi si può chiamare configurare come hai detto, specifyiong un host a 32-bit e passando flag di compilazione a 32 bit:
./configure --host=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
Se non avete installato multilib, si otterrà un errore come configure: error: C compiler cannot create executables
quando passa la bandiera -m32
.
Alcuni programmi compilano 32-bit su amd64 di default (ad esempio wine,) possibilmente oltre a 64-bit e dovrebbero essere in grado di trovare multilib se installato. Non sembra essere il caso per OP. Inoltre, Jack aveva ragione su una cosa - dovrebbe essere '--build', non' --host'. '--host' dovrebbe essere usato se e solo se si sta costruendo un compilatore. Funziona ancora perché ci sono molte persone che non lo fanno RTFM e script di scrittura che usano '--host' invece di' --build', e gli autotools si sono rotti già abbastanza cose –
i pacchetti * -multilib non esistono più in Debian stable. – Braiam
Ho avuto risultati migliori impostando invece un compilatore personalizzato. In questo modo tutti i test di configurazione, anche quelli che utilizzano CFLAGS personalizzate, ha funzionato correttamente:
./configure CC="gcc -m32" CXX="g++ -m32"
hai ancora bisogno di versioni a 32 bit di tutte le librerie l'applicazione utilizza naturalmente, in modo eventuali errori circa librerie mancanti si riferiscono a quelli a 32 bit.
Un modo alternativo alle cose sopra descritte sarebbe (se si dispone) di utilizzare un compilatore x86 dedicato. La linea di configurazione sarebbe allora come questo (ho chiamato gli x86-tools dopo il modello "<toolname> -x86"):
CC="/path/to/c/compiler/gcc-x86" CXX="path/to/cpp/compiler/g++-x86" LD="path/to/linker/ld-x86" ./configure
- 1. QtCreator su linux: 32 bit contro 64 bit
- 2. Come verificare il kernel 32-bit/64-bit per Linux
- 3. Inno-setup 32 bit e 64 bit in uno
- 4. iPhone OS 64 bit o 32 bit?
- 5. Compatibilità Java 32-bit vs 64-bit
- 6. 64 bit per divisione 32 bit
- 7. Compilare binario a 32 bit su sistema a 64 bit
- 8. Esecuzione di codice assembly a 32 bit su un processore Linux a 64 bit e 64 bit: Spiegazione dell'anomalia
- 9. TensorFlow su Linux a 32 bit?
- 10. Esegui AnyCPU come 32-bit su sistemi 64-bit
- 11. Eclipse 32 bit in esecuzione su 64 bit JVM
- 12. Dimensioni delle strutture su 32 bit e 64 bit
- 13. Compilando 32 bit Assembler su ubuntu a 64 bit
- 14. utilizzando com libreria 32 bit su 64 bit delle applicazioni
- 15. Esegui libreria a 32 bit su iPhone 5s 64 bit
- 16. Attributo struct differente basato su 32 bit o 64 bit
- 17. SQL Server 2012 a 32 bit o 64 bit su computer a 64 bit?
- 18. Syscall o sysenter su 32 bit Linux?
- 19. Build 32-bit con llvm-gcc a 64 bit
- 20. Applicazione a 32 o 64 bit su sistema operativo a 64 bit?
- 21. Port 32 bit driver di Windows a 64 bit Windows
- 22. Intellij idea 32 bit vs 64 bit velocità e prestazioni
- 23. Impossibile eseguire app a 32 bit su Linux a 64 bit
- 24. Come eseguire una JVM a 32 bit su un sistema Linux a 64 bit?
- 25. Test di Visual Studio Unit 32-bit e 64-bit
- 26. Determinazione dell'architettura JRE 32-bit vs 64-bit
- 27. Script sorgente R con 32 bit R da 64 bit RStudio
- 28. SDK Android a 32 o 64 bit su sistema operativo Windows a 64 bit?
- 29. Inno Setup installazione dll a 32 bit e 64 bit
- 30. prestazioni a 32 bit vs 64 bit aritmetica
più uno. Sto cercando di creare Git per Solaris. 'uname -m' restituisce' i86pc'. Tutte tranne una delle 10 o meno librerie dipendenti hanno rilevato erroneamente la piattaforma. Solo OpenSSL l'ha identificato correttamente come x86_64. – jww