Bash: ./filename: Kann keine Binärdatei ausführen

37

Ich konnte in Ubuntu 11.10 32 Bit keinen fortran-kompilierten Code ausführen.

Fehlermeldung ist

bash: ./filename : Cannot execute binary file.

Ich habe auch die Bibliotheken gcc und gfortran installiert.

Könnte jemand helfen?

$ file um
um: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped 
user87654
quelle
6
Bitte geben Sie die file filenameErgebnisse ein und melden Sie sie.
Januar
Dateiname ist um.exe und Ergebnis ist bash: ./um kann keine Binärdatei ausführen
user87654
2
Das sieht nicht nach einem nativen Linux-Programm aus. Versuchen Sie es mit Wein.
Lekensteyn
Diese ausführbare Datei wird mit einer make-Datei kompiliert, die eine Reihe von fortran-Codes kompiliert. Diese Exe ist in Fedora Maschine gemacht
User87654
1
Bitte geben Sie file um.exeoder ein file um(welcher Name auch immer Ihre Binärdatei ist). Es ist jedoch wahrscheinlich, dass es sich bei den generierten Binärdateien um einen Grund oder um andere Windows-Binärdateien handelt. Wenn das Programm öffentlich ist, können Sie auch den Link zu den Quellen veröffentlichen. Oder poste einfach das Makefile hier.
Januar

Antworten:

38

Wie Sie an der Ausgabe sehen können file um, die Sie in einem Kommentar gepostet haben, handelt es sich bei Ihrer Binärdatei um eine 64-Bit-Binärdatei.

32-Bit-Systeme können keine 64-Bit-Binärdateien ausführen, es funktioniert nur umgekehrt.

Elmicha
quelle
3
Dies ist der häufigste Grund, den ich für dieses Problem gesehen habe file.
Mikebabcock
Es gibt also keine Lösung dafür?
JohnMerlino
@JohnMerlino Versehen Sie Hardware mit dem richtigen Befehlssatz und einem Betriebssystem, das dies ermöglicht (AMD64-Hardware und Betriebssystem für AMD64-Programme). oder simulieren / emulieren / virtualisieren (Virtual Box / JVM / ...) oder eine Version für Ihren Befehlssatz erhalten. Sie können keine Software für andere Befehlssätze als native Programme ausführen.
12431234123412341234123
3

Versuchen Sie, die Datei ausführbar zu machen

chmod +x um.exe

Dann versuchen Sie es

./um.exe

Wenn es sich jedoch um eine für Windows kompilierte Exe-Datei handelt, müssen Sie wahrscheinlich Wine installieren.

carestad
quelle
3

Eine andere Lösung für Leute, die dieses Problem haben, mit Ausnahme des Teils über nicht übereinstimmende Bits, ist das Ausführen der Datei ohne den Befehl "bash".

Einfach benutzen chmod +x 'path to the file'und dann 'the path to the file'im Terminal starten. So habe ich mein Problem gelöst.

Onurhan
quelle
0

Eine weitere mögliche Ursache für diesen Fehler ist der Versuch, eine ausführbare Linux-Binärdatei auf einem Mac auszuführen oder umgekehrt.

Zum Beispiel beim Versuch, die trueBinärdatei von meinem Mac auf einer Ubuntu-Box auszuführen, auf die ich sie SCP-fähig gemacht habe:

$ ./mactrue 
-bash: ./mactrue: cannot execute binary file: Exec format error

Wenn Sie eine Binärdatei heruntergeladen haben und die Ausführung mit diesem Fehler fehlschlägt, überprüfen Sie, ob Sie die Version für das falsche Betriebssystem heruntergeladen haben.

Mark Amery
quelle
0

Für mich hat das Kopieren der Binärdatei in Programme auf meinem Mac und dann in meinen Pfad auf meinem Mac zu Problemen geführt. Ich bin mir ziemlich sicher, dass der Ordner "Applications" die Binärdatei in einen Alias ​​anstelle einer tatsächlichen Binärdatei umgewandelt hat.

-bash: /usr/local/bin/terraform: cannot execute binary file
mike$ file /usr/local/bin/terraform 
/usr/local/bin/terraform: MacOS Alias file

Ich habe die Binärdatei erneut aus meinen Downloads entpackt und sie einfach mvauf meinen Pfad gestellt, und es hat einwandfrei funktioniert.

mike$ file /usr/local/bin/terraform
/usr/local/bin/terraform: Mach-O 64-bit executable x86_64
Michael Davidson
quelle