Bash : ./filename : 이진 파일을 실행할 수 없습니다


37

우분투 11.10 32 비트에서 포트란 컴파일 된 코드를 실행할 수 없습니다.

오류 메시지는

bash: ./filename : Cannot execute binary file.

gcc 및 gfortran 라이브러리도 설치했습니다.

누구든지 도울 수 있습니까?

$ 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
file filename결과를 입력 하고보고 하십시오 .
1 월

파일 이름은 um.exe을하고 결과는 bash는 다음과 같습니다 ./um 바이너리 파일 실행할 수 없습니다
user87654

2
그것은 네이티브 리눅스 프로그램처럼 보이지 않습니다. 와인을 사용해보십시오.
Lekensteyn

이 실행 파일은 일련의 포트란 코드를 컴파일하는 make 파일을 사용하여 컴파일됩니다. 이 exe는 fedora machine에서 만들어졌습니다
user87654

1
입력하세요 file um.exe또는 file um(이진 파일의 이름 중). 그러나 생성 된 바이너리는 한 가지 이유 또는 다른 Windows 바이너리 일 수 있습니다. 또한 프로그램이 공개 인 경우 소스 링크를 게시 할 수 있습니다. 또는 여기에 makefile을 게시하십시오.
1 월

답변:


38

file um주석에 게시 한 결과에서 알 수 있듯이 이진은 64 비트 이진입니다.

32 비트 시스템은 64 비트 바이너리를 실행할 수 없으며 다른 방식으로 만 작동합니다.


3
이것이 내가이 문제에 대해 본 가장 일반적인 이유 file입니다.
mikebabcock 2014

그래서 이것에 대한 해결책이 없습니까?
JohnMerlino

@JohnMerlino 하드웨어에 올바른 명령어 세트와이를 지원하는 OS (AMD64 하드웨어 및 AMD64 프로그램 용 OS)를 제공합니다. 또는 시뮬레이션 / 에뮬레이션 / 가상화 (Virtual Box / JVM / ...) 또는 명령어 세트의 버전을 얻습니다. 다른 명령어 세트에 대해 기본 프로그램으로 소프트웨어를 실행할 수 없습니다.
12431234123412341234123

3

파일을 실행 가능하게 만들어보십시오

chmod +x um.exe

그런 다음 실행 해보십시오

./um.exe

그러나이 파일이 Windows 용으로 컴파일 된 exe 파일 인 경우 Wine을 설치해야합니다.


3

일치하지 않는 비트에 대한 부분을 제외하고이 문제가있는 사람들을위한 또 다른 솔루션은 "bash"명령없이 파일을 실행하는 것입니다.

터미널에서 사용 chmod +x 'path to the file'하고 실행 'the path to the file'하면 문제가 해결됩니다.


0

이 오류의 또 다른 원인은 Mac에서 Linux 바이너리 실행 파일을 실행하려고 시도하거나 그 반대입니다.

예를 들어, trueSCP에서 우분투 상자에 내 Mac 의 바이너리 를 실행하려고하면 다음과 같습니다.

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

바이너리를 다운로드했는데이 오류로 인해 실행이 실패하면 잘못된 OS 버전을 다운로드했는지 확인하십시오.


0

나를 위해 바이너리를 내 Mac의 응용 프로그램에 복사 한 다음 내 경로에 복사하면 Mac에서 엉망이되었습니다. 응용 프로그램 폴더가 바이너리를 실제 바이너리 대신 별칭으로 바꿨습니다.

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

다운로드에서 바이너리를 다시 압축 해제하고 mv경로로 옮겼습니다.

mike$ file /usr/local/bin/terraform
/usr/local/bin/terraform: Mach-O 64-bit executable x86_64
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.