MacとWindowsプラットフォームで正常に動作するアプリケーションがあり、AndroidとiOSをターゲットにしています。また、XMLデータの解析にlibxmlを使用するアプリケーションがあります。私の質問は?
1 --Androidプラットフォーム用のlibxmlをビルドする必要がありますか、それともNDKの一部としてすでに存在していますか?
ポインタを作成する必要がある場合は、どのように開始しますか?
MacとWindowsプラットフォームで正常に動作するアプリケーションがあり、AndroidとiOSをターゲットにしています。また、XMLデータの解析にlibxmlを使用するアプリケーションがあります。私の質問は?
1 --Androidプラットフォーム用のlibxmlをビルドする必要がありますか、それともNDKの一部としてすでに存在していますか?
ポインタを作成する必要がある場合は、どのように開始しますか?
次の 2 つのオプションがあります。
libxml を正常にビルドできる Android.mk を作成し、メインの Android.mk でその結果に依存します。Mac で libxml をネイティブに (configure スクリプトと make を使用して) ビルドしてみて、どのファイルをビルドする必要があるか、特別なフラグを渡す必要があるかどうかを確認できます。
または、libxml の構成スクリプトを使用し、NDK のツールチェーンを使用して Android 用の libxml をビルドします。次のようにする必要があります。
NDK_ROOT=/path/to/ndk
API_LEVEL=YOUR_API_LEVEL
SYSROOT=$NDK_ROOT/platforms/android-$API_LEVEL/arch-arm
export CC="$NDK_ROOT/toolchains/arm-linux-androideabi-4.4.3/Darwin-x86/bin/arm-linux-androideabi-gcc"
export CFLAGS="--sysroot=$SYSROOT"
export LDFLAGS="--sysroot=$SYSROOT"
./configure --host=arm-linux-gnueabi --enable-static --disable-shared
make libxml2.la
技術的には、Android のホスト トリプレットは ですがarm-linux-androideabi
、ほとんどの構成スクリプトはそれを認識せず、ここでの目的に-gnueabi
は十分に近いものです。
テストが適切に構築されていなかったという理由make libxml2.la
だけでなく、提案することになりました。make
結果のライブラリは、.libs/
フォルダーに配置されます。
2 番目の方法は少し簡単かもしれませんが、複数のアーキテクチャ (arm、armv7-a、場合によっては x86 や mips) 用にアプリをビルドする場合は、独自の Android.mk を作成すると、長期的には時間を節約できます。