1

理由はわかりませんが、(Android ADB)シェルは、オプションなしno such file or directoryでコンパイルしてから、ネイティブ実行可能ファイルを実行しようとすると表示されます。これは、ファイルがそのパスに存在することをシェルが認識しているが、ファイルが存在することをユーザーに許可したくない場合に取得されます。(たとえば、どちらがエラーメッセージを返さないかを確認できます)。arm-linux-gnueabi-gcc -staticno such file or directorychmod 4755

このオプションを使用してコンパイルする-static、プログラムは正常に実行されます。

staticオプションなしでコンパイルすると、なぜこれが発生するのですか?

4

1 に答える 1

1

静的にリンクすると、プログラムに必要なすべてのものが組み込まれます。デバイス上のライブラリへの依存関係がないため、完全に実行されます。悪いのはこのプログラミングスタイルのサイズです(巨大です)!

-staticを省略すると、コンパイラは動的リンクを想定しますが、魔法がなければ(Linux)-glibc:crash!ネットで「AndroidのネイティブC」チュートリアルを検索してください。彼らはすべての(恐ろしい)リンカーを説明します-あなたがAndroidに対してリンクする必要があるもの)-glibc別名「Bionic」。

幸運を祈りますマーティン

于 2013-02-14T00:51:39.363 に答える