바이너리 파일을 실행할 수 없습니다

바이너리 파일을 실행할 수 없습니다

오류가 있는 애플리케이션이 있습니다.

nhsupsserver: cannot execute binary file

나는 일부 텍스트를 읽었으며 대부분 아키텍처 불일치 및 실행 파일에 대해 이야기합니다.

오류를 인용하는 줄은 다음과 같습니다.

do_start() {
  $NHSUPSSERVER -d
}

32비트 및 64비트 실행 파일을 사용해 보았으나 동일한 문제가 발생했습니다.

cubietruck:/usr/local/nhs# file nhsupsserver64
nhsupsserver64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=0x90896f88ce3ae94d53190615abf4f2075ee1b18d, not stripped
cubietruck:/usr/local/nhs# file nhsupsserver32
nhsupsserver32: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=0x5a63e079574fae633eb538a4400f5e6f6e224752, not stripped
cubietruck:/usr/local/nhs# uname -a
Linux cubietruck 3.4.61+ #1 SMP PREEMPT Tue Dec 17 19:28:39 CST 2013 armv7l armv7l armv7l GNU/Linux

무슨 일이야?

답변1

달리기 uname -a도 하세요 file nhsupserver. ARM 아키텍처를 실행할 가능성이 높지만 nhsupserver 바이너리는 x86용입니다.

고쳐 쓰다이제 이 두 개의 출력을 추가했으므로 하드웨어가팔 v7l하지만 nhsupserver 바이너리는x86하드웨어.

armv7l 하드웨어용으로 컴파일된 nhsupserver 버전을 가져와야 합니다. 여기에는 다른 패키지를 다운로드하거나 소스에서 컴파일하는 작업이 포함될 수 있습니다. 아니면 armv7l 하드웨어를 버리고 x86으로 전환하세요.

관련 정보