x86で実行されているUbuntu 12.04でプログラムをクロスコンパイルし、ターゲットアーキテクチャがARMの代わりにandを使用gcc-arm-linux-gnueabi
しbinutils-arm-linux-gnueabi
てコンパイルしました。エラーや警告なしで正常にコンパイルされます。arm-linux-gnueabi-gcc
gcc
ARM マシン (Pandaboard - Ubuntu 12.04 も実行) で実行しようとすると、次のようになります。
bash: ./sttyl: No such file or directory
私はファイルがそこにあり、適切な権限を持っていることを知っています:
-rwxrwxr-x 1 haziz haziz 8.5K Feb 10 10:34 sttyl
の出力file sttyl
は
sttyl: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31,BuildID[sha1]=0x6d504f7d84b93603122223a89e2b5960c840309f, not stripped
Pandaboard でネイティブにコンパイルすると、正常にコンパイルおよび実行されます。これはfile sttyl
、ネイティブにコンパイルされたコピーの出力です。
sttyl: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31,BuildID[sha1]=0x9897c785266c5b7cdf580e08091aba239db84ecf, not stripped
私は何を間違っていますか?さらに、もし私がクロスコンパイルを間違えていたら、シェル/カーネルが、実行可能ファイルが存在しないのではなく、間違ったアーキテクチャ用であると効果的に教えてくれることを期待していたでしょう!