Ich verwende ein 64-Bit-System, möchte aber eine Reihe von 32-Bit-Binärdateien. Welche Optionen muss ich an ein configure-Skript übergeben, um ein 32bit/x86-Makefile zu generieren?Build 32bit auf 64-Bit-Linux mit einem Automake konfigurieren Skript?
Antwort
das folgende Argument Passing Skript zu konfigurieren, erlaubt mir die 32-Bit-Bibliothek auf 64-Bit-Linux Antwort des
./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
Funktioniert nicht für mich :(Bitte helfen Sie mir bei http://stackoverflow.com/questions/13780319/cant-build-32bit-wine-on-64bit-linux – m93a
Es hat nicht funktioniert für mich beim Versuch zu bauen Ich habe die Nachricht 'configure: error: C++ Compiler kann keine ausführbaren Dateien erstellen '. –
Diese Antwort ist unvollständig, weshalb Sie manchmal den Fehler" Compiler können keine ausführbaren Dateien erstellen "erhalten. Siehe meine Antwort in diesem Thread – volpato
Unter der Annahme, gcc/g ++:
CPPFLAGS=-m32 ./configure ...
Danke für die Antwort. Das configure-Skript legt weiterhin den Buildsystemtyp und den Hostsystemtyp auf x86_64-unknown-linux-gnu fest. Weißt du, wie man diese überschreibt? –
Jack zu bauen, ist unvollständig.
Sie benötigen Compiler/libc Unterstützung für 32-Bit-Kompilierung. In einigen Distributionen wie Ubuntu, was Sie brauchen, ist zu tun Installieren von Paketen gcc-multilib
und/oder g++-multilib
:
sudo apt-get install gcc-multilib g++-multilib
Dann können Sie konfigurieren, rufen Sie wie Sie sagten, specifyiong einen 32-Bit-Host und vorbei 32-Bit-Kompilation Fahnen:
./configure --host=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
Wenn Sie nicht multilib installiert haben, erhalten Sie einen Fehler wie configure: error: C compiler cannot create executables
erhalten, wenn das Bestehen der -m32
Flagge.
Einige Programme kompilieren 32-bit auf amd64 (zB wine,) möglicherweise zusätzlich zu 64-bit und sollten in der Lage sein, multilib zu finden, falls installiert, scheint nicht der Fall für OP zu sein eine Sache - es sollte '--build' sein, nicht' --host'. '--host' sollte genau dann verwendet werden, wenn Sie einen Compiler erstellen. Es funktioniert immer noch, weil es viele Leute gibt, die das nicht tun RTFM und schreibe Skripte, die '--host' anstelle von' --build' verwenden, und die Autotools-Leute sind pleite n genug Dinge schon. –
Die * -Multilib-Pakete existieren nicht mehr in Debian-Stable. – Braiam
Ich hatte besseren Erfolg, indem ich stattdessen einen benutzerdefinierten Compiler setzte. Auf diese Weise alle configure-Tests, auch die, die benutzerdefinierte CFLAGS verwenden, arbeitete richtig:
./configure CC="gcc -m32" CXX="g++ -m32"
Sie benötigen noch 32-Bit-Versionen von allen Bibliotheken der Anwendung natürlich verwendet, so dass alle Fehler über fehlende Bibliotheken beziehen sich auf die 32-Bit-Einsen.
Ein alternativer Weg zu den oben beschriebenen Dingen wäre (falls vorhanden) ein dedizierter x86-Compiler. Die Konfigurationszeile wäre dann wie folgt aus (ich die x86-Tools nach dem Muster namens "<Toolnamen> -x86"):
CC="/path/to/c/compiler/gcc-x86" CXX="path/to/cpp/compiler/g++-x86" LD="path/to/linker/ld-x86" ./configure
- 1. Gradle: Kann Artefakt von einem externen Build-Skript nicht konfigurieren
- 2. Automake Problem mit Verknüpfung
- 3. Unit Tests mit Automake
- 4. unbekannte Anzahl von gebauten Quellen mit automake
- 5. Hosted Build Server auf VSTS konfigurieren
- 6. Xcode-Build-Skript (Build-Phasen-> Skript ausführen) Build-Version basierend auf Benutzername (Benutzer)
- 7. Konfigurieren Sie Jenkins mit verschiedenen Build Tupes
- 8. Wie Windows 32bit oder 64 Bit mit NSIS-Skript erkennen?
- 9. NetBeans Post Build Skript
- 10. Deckbarkeit für ndk-build konfigurieren
- 11. Wie fügt man einen benutzerdefinierten Build-Schritt zu einem Automake-basierten Projekt in KDevelop hinzu?
- 12. Kann ich in einem Ant-Build-Skript auf einen Pfad in einer anderen Build-Datei verweisen?
- 13. TFS 2015 baut auf Windows 2008 Server-Computer, Build konfigurieren auf einem anderen PC aufrufen
- 14. Kuchen: Build-Skript Fortschritt
- 15. Ausführen von 32bit Eclipse mit 32bit jvm unter Windows 64bit
- 16. Automake-: Variable nicht auf Solaris erweitert
- 17. Automake/autoconf-Konfiguration zur Installation als SUID
- 18. 32bit vergleichen und tauschen auf einem 64-Bit-Wort
- 19. Fail Hudson Build mit groovy Skript
- 20. Zugriff auf> 2,3,4GB Dateien in 32bit Prozess auf 64bit (oder 32bit) Windows
- 21. Setzen von Datei-Flags mit automake
- 22. Automake und Bibliotheken
- 23. Umgang mit Passwörtern in NAnt Build-Skript
- 24. eine bestimmte Version von MSBuild in einem FAKE Build-Skript
- 25. Header-Abhängigkeit in automake
- 26. Windows - automake nicht verfügbar in MSYS64
- 27. Automake und standard shared libraries
- 28. Wie funktionieren geteilte Bibliotheken in einem gemischten 64bit/32bit-System?
- 29. Zugriff auf das aktuelle Jenkins-Build in Groovy-Skript
- 30. Qt Automake separate Include, ui, Ressourcenordner
plus eins. Ich versuche Git für Solaris zu bauen. 'uname -m' gibt' i86pc' zurück. Alle bis auf eine der 10 oder so abhängigen Bibliotheken haben die Plattform falsch erkannt. Nur OpenSSL hat es korrekt als x86_64 identifiziert. – jww