私はARM用のネイティブgccをビルドしてAndroidで実行したいと考えています。これは、glibcをビルドし、glibcにリンクされたGNUユーティリティをビルドしたいため、Androidフォンでネイティブにコンパイルしたいためです。
crosstools-ng を使用してクロスコンパイル ツールチェーンを構築しました。
私はglibcをクロスコンパイルしました。
tar などのネイティブ アーム (arm-exynos-linux-gnueabi) ユーティリティをいくつかビルドし、ビルドされた x-tools sysroot の lib ディレクトリを Android マシンの /lib にシンボリック リンクするときに、それらが Android フォンで動作することを確認しました。
次に、マシン上で開発できるように、ネイティブ gcc をビルドする必要があります。私は比較的経験が浅いため、クロスコンパイルに関していくつかの哲学的な問題を抱えています。
したがって、試行錯誤のアプローチですでに2日間過ごしましたが、今のところうまくいかないため、手順を正確に進める方法をお尋ねしたいと思います.
つまり、gcc は、gmp に依存する mpfr に依存する mpc に依存します。
では、どうすればよいのでしょうか。
どのアーキテクチャ deps をビルドし、どのホスト ターゲットとビルド オプションを使用するか?
- 機能しているツールチェーンを台無しにしないように、tools dir を作成し、そこにこれらの deps を構築しますか?
- gmp (ホスト、ビルド、ターゲットなし?)
- mpfr(同じ?)
mpc(同じ?)
それからgcc、どうやって?--host=arm-exynos-linux-gnueabi --build=i686-build_pc-linux-gnu --target=arm-exynos-linux-gnueabi ?
これは正しいですか、それとも上記の手順のいくつかを台無しにしていますか?
ちなみに、私はこのガイドhttp://forum.xda-developers.com/showthread.php?t=1299962に従って crosstool-ng ツールチェーンを構築しましたが、--host=arm だけでネイティブ アプリをコンパイルすることを推奨しています。 ..
私はそうしてきましたが、彼らは Android システムで動作しますが、私には正しくないように思えますが、それは --target=arm... ではないでしょうか?
私はひどく失敗しているので、上記の手順を手伝ってくれてありがとう。