いくつかのUSB NCM関連のテストケースを実行する必要があり、いくつかのテストコードが.cファイルに書き込まれました。 GCCコンパイラを使用してUbuntuホストで.cファイルをコンパイルし、デバイスコンソールで実行しようとしましたが、「-sh:バイナリを実行できません」エラーが発生しました。デバイス側にはGCCは設置されていません。
uname -a コマンドは、次の o/p を提供します。
> 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
私はホストとデバイスの間に環境の違いがあることを理解しています。とにかく、デバイス側のコンソールで.cファイルをコンパイルして実行する必要があります。
答え1
x86_64とi686命令セットは異なります(詳しくは)。
ホストシステムでソースコードをコンパイルするには、次のコマンドを使用します。
gcc -m32 -mtune=i686 source.c -o source
このようなエラーが発生した場合、fatal error: *.h : No such file or directory
適切なクロスコンパイルライブラリがないことを意味します。
sudo apt install g++-multilib
gcc コマンドを再実行してください。
引用: