Bash: ./filename: impossibile eseguire il file binario


37

Non ho potuto eseguire un codice compilato fortran in Ubuntu 11.10 a 32 bit.

Il messaggio di errore è

bash: ./filename : Cannot execute binary file.

Ho installato anche le librerie gcc e gfortran.

Qualcuno potrebbe aiutare?

$ 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 

6
Digita file filenamee segnala i risultati.
Gennaio

il nome del file è um.exe e il risultato è bash: ./um non può eseguire il file binario
user87654

2
Non sembra un programma Linux nativo. Prova ad usare il vino.
Lekensteyn,

questo eseguibile viene compilato usando un file make che compila un insieme di codici fortran. questo exe è realizzato in macchina fedora
user87654

1
Digitare file um.exeo file um(qualunque sia il nome del file binario). Tuttavia, probabilmente i binari generati sono per un motivo o altri binari di Windows. Inoltre, se il programma è pubblico, è possibile pubblicare il collegamento alle fonti. O semplicemente pubblica il makefile qui.
Gennaio

Risposte:


38

Come puoi vedere dall'output di file umquello che hai pubblicato in un commento, il tuo binario è un binario a 64 bit.

I sistemi a 32 bit non possono eseguire binari a 64 bit, ma funzionano solo al contrario.


3
Questo è il motivo più comune che ho visto per questo problema, l'utilizzo filelo identificherà abbastanza rapidamente.
mikebabcock,

Quindi non c'è soluzione a questo?
John Merlino,

@JohnMerlino O fornire all'hardware il set di istruzioni corretto e un sistema operativo che lo abiliti (hardware AMD64 e sistema operativo per i programmi AMD64). o simula / emula / virtualizza (Virtual Box / JVM / ...) o ottieni una versione per il tuo set di istruzioni. Non è possibile eseguire il software per altri set di istruzioni come programmi nativi.
12431234123412341234123,

3

Prova a rendere eseguibile il file

chmod +x um.exe

Quindi prova a eseguirlo

./um.exe

Ma se questo è un file exe compilato per Windows, probabilmente dovrai installare Wine.


3

Un'altra soluzione per le persone che hanno questo problema ad eccezione della parte relativa ai bit senza eguali è quella di eseguire il file senza il comando "bash".

Basta usare chmod +x 'path to the file'e quindi eseguire 'the path to the file'nel terminale. Ecco come ho risolto il mio problema.


0

Un'altra possibile fonte di questo errore: provare a eseguire un eseguibile binario Linux su un Mac o viceversa.

Ad esempio, provando a eseguire il file truebinario dal mio Mac su una casella Ubuntu in cui l'ho SCP:

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

Se hai scaricato un file binario e l'esecuzione non riesce con questo errore, controlla se hai scaricato la versione per il sistema operativo sbagliato.


0

Per me, copiare il file binario in Applicazioni sul mio Mac e poi nel mio Percorso lo ha incasinato sul mio Mac. Sono abbastanza sicuro che la cartella Applicazioni abbia trasformato il binario in un alias anziché in un vero binario.

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

Ho decompresso di nuovo il file binario dai miei download e l'ho appena modificato mvnel mio percorso e ha funzionato bene.

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

0

Per i googler:

  • 32-bit o 64-bit? Controllare confile yourbinary
  • Autorizzazione a eseguire? Farechmod +x yourbinary
  • Percorso corretto? Fare./yourbinary
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.