“-sh: Não é possível executar o arquivo binário” por causa da fonte compilada em “x86_64” e executada na plataforma “i686”

0

Eu preciso executar alguns casos de teste relacionados ao USB NCM para os quais escrevi algum código de teste no arquivo .c. Eu compilei o arquivo .c do Ubuntu Host usando o compilador GCC e tentando executar a partir do console do dispositivo, mas estou recebendo "-sh: não é possível executar o arquivo binário" erro. Do lado do dispositivo, não temos o GCC instalado.

uname -a comando dá o seguinte o / p in,

> Host:

    4.4.0-31-generic Ubuntu x86_64

> Device:

    3.14.55-yocto-standard #1 SMP PREEMPT Fri Oct 12 13:34:50 CEST 2018 i686 GNU/Linux

Eu entendo que existe diferença de ambiente de host para dispositivo. De qualquer forma eu preciso para compilar e executar o arquivo. C no console do lado do dispositivo.

    
por Shivaprasad A Prabhu 26.11.2018 / 13:06

1 resposta

2

Conjuntos de instruções x86_64 e i686 não são os mesmos (para mais detalhes ).

Use este comando para compilar a fonte no seu host:

 gcc -m32 -mtune=i686 source.c -o source  

se obtiver um erro como este fatal error: *.h : No such file or directory , significa que você não possui uma biblioteca adequada para compilação cruzada

 sudo apt install g++-multilib

E execute o comando gcc novamente

Referência:

Página man do GCC

    
por 26.11.2018 / 13:49

Tags