私はオープンソースプロジェクトの構築に興味があり、GNUライブラリGLIBCとGLIBMが必要です。共有(.so)オブジェクト、またはスタティック(.a)オブジェクトであっても、ARMv7-neonアーキテクチャで、API-9を使用してLinuxでクロスコンパイルすると(Ubuntu 11.10をホストとして使用しています) JavaのJNIを呼び出すライブラリとして、最終的に配布用のAPKとしてコンパイルするには、この結果を達成するためにどのような手順を実行しますか?NDKライブラリのGLIBCに対するビルド
私はGoogleのNDKツールチェーン(ドキュメントにしたがって、$ PATHと$ CCを難しくて簡単に設定する)、さまざまなカスタムツールチェーン、Code Sourcery toolchainとXDA forum using crosstool-ngで提案されているツールチェーンを試してみました。 JNIから呼び出すことができる共用オブジェクトファイルを実現し、ルートされていないAndroidデバイス上の完全なGLIBCライブラリにアクセスできますか?
私はGLIBCとGLIBMをローカルにビルドし、NDKのarm-linux-androideabi-ldを使って関連オブジェクト(.o)ファイルとリンクを手動でコピーすることです。 JavaのSystem.LoadLibarary()を使用してライブラリを呼び出すと、再配置が失敗するため(エラー未知のリロケーションタイプ19を与える)、Crosstool-ngおよびCodeSourceryのlibc.so.6ファイルは機能しません。再配置に関する私の知識は最高ではありませんが、これを読んだところから/linux/elf.hヘッダファイルを変更する必要がありますが、そこからどこに行くのか正確にはわかりません。
リンクされたときにすべての依存関係が解決された静的な実行可能ファイルを作成することは可能ですが、これを私が知っている限りAPKファイルとしてパッケージ化することはできません。
確かに、私はAndroidプラットフォームでBionic以外のものに対してCコードをコンパイルしたいとは思わないでしょうか? Androidに移植できる非常に多くのCプロジェクトがあり、明らかにGLIBCはiPhoneでかなりの期間利用可能です。
あなたは解決策を考え出しましたか?もしそうなら、親切に私に知らせてください。 – re3el
いいえ、残念ながら、それは多くの作業で可能であるように見えます:http://unix.stackexchange.com/questions/163765/cross-compiling-glibc-for-my-arm-soc –