5

MacとWindowsプラットフォームで正常に動作するアプリケーションがあり、AndroidとiOSをターゲットにしています。また、XMLデータの解析にlibxmlを使用するアプリケーションがあります。私の質問は?

1 --Androidプラットフォーム用のlibxmlをビルドする必要がありますか、それともNDKの一部としてすでに存在していますか?

ポインタを作成する必要がある場合は、どのように開始しますか?

4

1 に答える 1

11

次の 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 を作成すると、長期的には時間を節約できます。

于 2012-08-29T10:05:09.470 に答える