28

Android GCC ツールチェーン (プレーン Linux、Android または NDK なし) を使用して、ネイティブ Linux ARM バイナリをビルドしました。

私は自分の PC から adb シェル経由で Android 4 を実行しているタブレットに接続しました。そのバイナリをそのデバイスの /system/bin に "adb push" し、そこで実行できることを期待しました。chmod 777 で実行可能とマークしました。

実行しようとすると、「そのようなファイルまたはディレクトリはありません」と表示されます。

詳細情報: この小さなプログラムは fc および fm ライブラリを使用します。ARM ツールチェーンには crt1 がないように見えるため、私が見つけた例から、通常は起動コードが含まれているため、android ビルドでそれを含むファイルを検索し、crtbegin_dynamic と crtend_dynamic を見つけましたが、_static に相当するペアの 1 つがなかったので、-static を GCC に渡しませんでした。「-nostdlib」でビルドされています。

何が問題になる可能性がありますか?

4

2 に答える 2

48

Ubuntu 64 などの 64 ビット プラットフォームで作業している場合は、このヒントが問題の解決に役立つ場合があります。apt-get を使用して、i386 32 ビット互換ライブラリを簡単にインストールしてみてください。

sudo apt-get install ia32-libs

それは私にとってうまくいきました。同じ問題で立ち往生している場合はお知らせください。

Ubuntu 13.10 以降の場合

adityaがこの回答へのコメントで言ったように:

Ubuntu 13.10 の時点で、これを実行 sudo apt-get install lib32z1する必要があります:sudo apt-get install lib32ncurses5 lib32stdc++6

于 2013-01-13T04:53:45.243 に答える