Bash: ./filename: no se puede ejecutar el archivo binario

37

No pude ejecutar un código compilado fortran en ubuntu 11.10 32 bit.

Mensaje de error es

bash: ./filename : Cannot execute binary file.

También instalé las bibliotecas gcc y gfortran.

¿Alguien podría ayudar?

$ 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 
usuario87654
fuente
66
Por favor escriba file filenamee informe los resultados.
Enero
el nombre de archivo es um.exe y el resultado es bash: ./um no puede ejecutar el archivo binario
user87654
2
Eso no se parece a un programa nativo de Linux. Intenta usar vino.
Lekensteyn
Este ejecutable se compila utilizando un archivo make que compila un conjunto de códigos fortran. este exe está hecho en máquina fedora
user87654
1
Escriba file um.exeo file um(el que sea el nombre de su archivo binario). Sin embargo, es probable que los binarios generados sean por una razón u otros binarios de Windows. Además, si el programa es público, puede publicar el enlace a las fuentes. O simplemente publique el archivo MAKE aquí.
Enero

Respuestas:

38

Como puede ver en la salida de lo file umque publicó en un comentario, su binario es un binario de 64 bits.

Los sistemas de 32 bits no pueden ejecutar binarios de 64 bits, solo funciona al revés.

elmicha
fuente
3
Esta es la razón más común que he visto para este problema, el uso filelo identificará con bastante rapidez.
mikebabcock
Entonces, ¿no hay solución para esto?
JohnMerlino
@JohnMerlino O bien proporcione hardware con el conjunto de instrucciones correcto y un sistema operativo que lo habilite (hardware y sistema operativo AMD64 para programas AMD64). o simularlo / emularlo / virtualizarlo (Virtual Box / JVM / ...) u obtener una versión para su conjunto de instrucciones. No puede ejecutar software para otro conjunto de instrucciones como programas nativos.
12431234123412341234123
3

Intenta hacer que el archivo sea ejecutable

chmod +x um.exe

Entonces intenta ejecutarlo

./um.exe

Pero si este es un archivo exe compilado para Windows, probablemente necesite instalar Wine.

Carestad
fuente
3

Otra solución para las personas que tienen este problema, excepto la parte sobre bits no coincidentes, es ejecutar el archivo sin el comando "bash".

Simplemente use chmod +x 'path to the file'y luego ejecute 'the path to the file'en la terminal. Así es como resolví mi problema.

Onurhan
fuente
0

Otra posible fuente de este error: intentar ejecutar un ejecutable binario de Linux en una Mac, o viceversa.

Por ejemplo, tratando de ejecutar el truebinario desde mi Mac en un cuadro de Ubuntu en el que lo SCP:

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

Si ha descargado un archivo binario y su ejecución falla con este error, verifique si ha descargado la versión para el sistema operativo incorrecto.

Mark Amery
fuente
0

Para mí, copiar el binario en Aplicaciones en mi Mac y luego en mi Ruta lo estropeó en mi Mac. Estoy bastante seguro de que la carpeta Aplicaciones convirtió el binario en un Alias ​​en lugar de un binario real.

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

Descomprimí el binario de mis descargas nuevamente y simplemente lo mvedité en mi ruta y funcionó bien.

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

Para Googlers:

  • 32 bits o 64 bits? Verifícalo confile yourbinary
  • Permiso para ejecutar? Hacerchmod +x yourbinary
  • Camino correcto? Hacer./yourbinary
Dai
fuente