2013-08-02 4 views
4

다운로드 한 학술 소프트웨어 패키지의 일부인 바이너리 실행 파일이 있습니다. 실행할 수없는 것 같아서 소스 코드에 액세스 할 수 없습니다. 나는 다음과 같은 것을 시도했다. 이견있는 사람?바이너리 파일을 실행할 수 없습니다.

감사합니다.

$ chmod +x random_cell 
$ ./random_cell 
-bash: ./random_cell: cannot execute binary file 
$ file random_cell 
random_cell: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped 
$ ldd random_cell 
random_cell: is not an object file 
$ uname -m 
x86_64 

답변

0

참고하여 file 명령의 출력 : 당신이 실행하려는 실행 파일이 - 64 아키텍처 컴파일 말하는

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked 
(uses shared libs), for GNU/Linux 2.6.4, not stripped 

. 32 비트 용으로 다시 컴파일하지 않으면 실행되지 않는 32 비트 운영 체제를 사용하는 경우.

소스 코드가 없으므로 더 쉬운 솔루션은 64 비트 Linux 시스템을 사용하여 실행하는 것입니다.

+0

32 비트 운영 체제를 실행하고 있는지 어떻게 알 수 있습니까? 나는 내가 64 비트에 있어야한다고 생각하지만, 나는 확신하기 위해 기꺼이 체크한다. – user1473883

+0

이 명령을 사용하십시오 :'uname -a' 그리고 출력은 – Claudio

+0

오 .. 대기. 이제 당신이'uname -m'을 사용하는 것을 보았습니다. 그리고 그것은 64 비트 시스템 인 x86_64를 반환했습니다. random_cell에 실행 비트를 설정 했습니까? 사용자가 소유 했습니까? – Claudio

1

저도 같은 문제로 실행하고이 나는 잘

$ ~/opt/Linux-3.11.0-i686/svn/bin/svn --version 
-bash: /home/fennellb/opt/Linux-3.11.0-i686/svn/bin/svn: cannot execute binary file 

$ file ~/opt/Linux-3.11.0-i686/svn/bin/svn 
/home/fennellb/opt/Linux-3.11.0-i686/svn/bin/svn: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=0x6b38ac5ac15af4334712b9bacc6646cabaefde9a, not stripped 

$ find /bin /usr/bin -maxdepth 1 -type f -print0 | 
     xargs -0 file | 
     awk 'BEGIN   {c32=0;c64=0} 
      /ELF 64-bit/ {c64++} 
      /ELF 32-bit/ {c32++} 
      END    {print "ELF 32-bit count "c32; 
           print "ELF 64-bit count "c64}' 

ELF 32-bit count 1639 
ELF 64-bit count 0 

... 그것을 설명과 답변을 내놓았다입니다!

가능한 솔루션 : 당신의 CPU가 64 비트 리눅스 지원하는지 확인 :

$ cat /proc/cpuinfo | egrep '^(model name|cpu MH|vend)' 
cpu MHz   : 1200.000 
model name  : Intel(R) Pentium(R) Dual CPU E2140 @ 1.60GHz 
vendor_id  : GenuineIntel 

(다음, 구글 사양을 찾을 수있는 정확한 CPU 이름)

그런 다음 64 비트 리눅스로 업그레이드 (당신이 할 수있는 경우) - 젠 (Xen)과 같은 64 비트 Linux 이미지 (또는 VM과 함께 - Bochs - OSDev Wiki - 대체 64 비트 코드를 32 비트에서 실행하는 Download Ubuntu Desktop

한 리눅스는 QEMU/Bochs와 같은 사실의 CPU 에뮬레이터를 사용하는 것입니다 CPU가 지원하는 경우).

다른 방법은 소프트웨어 제공 업체에 32 비트 용으로 다시 컴파일하도록 요청하는 것입니다.

(나를 위해 소스에서 다시 컴파일 할 예정입니다.)

관련 문제