Bash: ./filename: Não é possível executar o arquivo binário

37

Não consegui executar um código compilado fortran no ubuntu 11.10 de 32 bits.

Mensagem de erro é

bash: ./filename : Cannot execute binary file.

Também instalei as bibliotecas gcc e gfortran.

Alguém poderia ajudar?

$ 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
fonte
6
Digite file filenamee relate os resultados.
janeiro
filename é um.exe e o resultado é bash: ./um não pode executar arquivo binário
user87654 5/12
2
Isso não parece um programa Linux nativo. Tente usar vinho.
Lekensteyn
esse executável é compilado usando um arquivo make que compila um conjunto de códigos fortran. este exe é feito na máquina fedora
user87654 5/12
11
Digite file um.exeou file um(o que for o nome do seu arquivo binário). No entanto, provavelmente os binários gerados são por um motivo ou outros binários do Windows. Além disso, se o programa for público, você poderá postar o link nas fontes. Ou apenas poste o makefile aqui.
janeiro

Respostas:

38

Como você pode ver na saída file umque você postou em um comentário, seu binário é um binário de 64 bits.

Os sistemas de 32 bits não podem executar binários de 64 bits, apenas funcionam ao contrário.

elmicha
fonte
3
Esse é o motivo mais comum que eu já vi para esse problema, o uso fileo identificará rapidamente.
mikebabcock
Portanto, não há solução para isso?
31414 JohnMerlino
@JohnMerlino Forneça ao Hardware o conjunto de instruções correto e um SO que o habilite (Hardware AMD64 e SO para programas AMD64). ou simule / emule / virtualize (Virtual Box / JVM / ...) ou obtenha uma versão para o seu conjunto de instruções. Você não pode executar o Software para outras instruções definidas como Programas nativos.
12431234123412341234123
3

Tente tornar o arquivo executável

chmod +x um.exe

Então tente executá-lo

./um.exe

Mas se este é um arquivo exe compilado para Windows, você provavelmente precisará instalar o Wine.

carestad
fonte
3

Outra solução para as pessoas que estão tendo esse problema, exceto a parte sobre bits não correspondentes, é a execução do arquivo sem o comando "bash".

Basta usar chmod +x 'path to the file'e depois executar 'the path to the file'no terminal. Foi assim que resolvi o meu problema.

Onurhan
fonte
0

Outra fonte possível desse erro: tentar executar um executável binário do Linux em um Mac ou vice-versa.

Por exemplo, tentando executar o truebinário do meu Mac em uma caixa do Ubuntu na qual eu o SCP:

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

Se você baixou um binário e a execução falhou com esse erro, verifique se você baixou a versão do sistema operacional errado.

Mark Amery
fonte
0

Para mim, copiar o binário em Aplicativos no meu Mac e depois no meu Caminho atrapalhou no meu Mac. Tenho certeza de que a pasta Aplicativos transformou o binário em um Alias, em vez de um binário real.

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

Descompactei o binário do meu Downloads novamente e o mveditei no meu Path e funcionou bem.

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