実行可能ファイルを実行しようとしたときにシェルが「見つかりません」と応答する理由はすべてありますか?
- 実行可能ファイルが存在し、実行権限(
chmod +x
)があります。 ldd
すべての依存関係が存在することを示します。- ファイルは、実行可能ファイルが正しいアーキテクチャ用にコンパイルされたことを示します(そうでなければならない理由はなく、Yoctoビルドの残りのシステムでコンパイルされました)。
また何らかの理由がありますか?
答え1
実行権限を持つバイナリがある場合、「見つかりません」というエラーメッセージが表示される一般的な原因は、バイナリから要求された動的ローダが存在しないためです。以下を使用して確認できますreadelf
。
$ readelf -l /path/to/binary | grep interpreter
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
インタプリタがない場合、実行可能ファイルは「見つかりません」エラーで実行されません。バラより64ビットシステムで32ビットバイナリを実行すると「見つかりません」メッセージを受信するもっと学ぶ。