Wird ein Programm in 64-Bit-Arbeiten auf 32-Bit-Maschine eingehalten?
-
19-09-2019 - |
Frage
Wie der Titel sagte, habe ich ein C-Programm eingehalten und ein binäres in 64-Bit-Maschine erstellt. Wird diese binäre Arbeit unter 32-Bit?
Lösung
64-Bit-Binärdateien können nicht auf einem 32-Bit-Betriebssystem ausgeführt werden. Wenn file
Berichte ELF 64-bit
, Sie haben eine 64-Bit-Binärdatei.
Um 32-Bit-Binärdateien auf einem 64-Bit-Linux zu erstellen, müssen Sie Pass haben -m32
zu gcc. Sie müssen auch 32-Bit-Bibliotheken installieren lassen (sudo apt-get install libc6-dev-i386
).
Andere Tipps
Die Zusammenstellungsmaschine spielt keine Rolle. Was zählt ist: Wird der Code 32 Bit (Antwort: Ja) oder 64 Bit (Antwort: Nein) generiert.
Funktioniert es auf einer 32-Bit-Maschine? Einer mit einer CPU, die den 64-Bit-Modus nicht unterstützt? Nein.
Funktioniert es auf einem 64-Bit-VM auf einem 32-Bit-Native OS? Ja, meiner Erfahrung nach.
Ein überraschendes Ergebnis ist, dass 64-Bit-VMs unter einem 32-Bit-Host-Betriebssystem ausgeführt werden können, vorausgesetzt, die CPU ist fähig und Sie möchten dem Gast nicht zu viel RAM (> 2G oder so darauf reichen).