我们的应用程序适用于Mac和Windows平台,现在面向Android和iOS, 使用libxml解析XML数据的应用程序,我的问题是?
1 - 我是否需要为Android平台构建libxml或者它已经作为NDK的一部分构建?
如果需要构建任何指针如何启动?
答案 0 :(得分:9)
您有两种选择:
编写一个可以成功构建libxml的Android.mk,并依赖于主Android.mk中的结果。您可以尝试在Mac上本地构建libxml(使用configure脚本和make)以了解需要构建哪些文件,以及是否需要传递任何特殊标志。
或者,使用libxml的configure脚本并使用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/
文件夹中。
第二种方法可能会更容易一些,但如果您打算为多种架构(arm,armv7-a,甚至x86和mips)构建应用程序,编写自己的Android.mk将节省您的时间运行