我们有一个在Mac和Windows平台上工作良好的应用程序,现在目标是Android和iOS,使用libxml解析XML数据的应用程序,我的问题是?
1 --我是否需要为Android平台构建libxml,或者它已经是NDK的一部分?
如果需要构建任何指针,该如何开始?
发布于 2012-08-29 18:05:09
您有两个选择:
编写一个可以成功构建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/文件夹中。
第二种方法可能会简单一点,但如果你打算为多种架构(arm,armv7-a,甚至x86和mips)构建你的应用程序,从长远来看,编写你自己的Android.mk会节省你的时间。
https://stackoverflow.com/questions/12052089
复制相似问题