não pode executar o arquivo binário

2

Eu tenho um aplicativo que fornece o erro:

nhsupsserver: cannot execute binary file

Eu li alguns textos e a maioria fala sobre uma incompatibilidade de arquitetura e um arquivo executável.

A linha que referencia o erro é

do_start() {
  $NHSUPSSERVER -d
}

Eu tentei com um executável de 32 e 64 bits, mas aconteceu a mesma coisa

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

O que está acontecendo?

    
por zacssa 08.08.2015 / 16:07

1 resposta

4

Execute uname -a e também file nhsupserver . É bem possível que você esteja executando a arquitetura ARM, mas o binário nhsupserver é para x86.

UPDATE agora que você adicionou essas duas saídas, está claro que seu hardware é armv7l , mas o binário nhsupserver é compilado para o hardware x86 .

Você precisa obter uma versão do nhsupserver que foi compilada para o seu hardware armv7l. Isso pode envolver o download de um pacote diferente ou a compilação da fonte. Ou abandonando seu hardware armv7l e indo em x86.

    
por 08.08.2015 / 16:20