【问题标题】:building libxml2 from source for android as static library从源代码为 android 构建 libxml2 作为静态库
【发布时间】:2012-06-15 13:52:25
【问题描述】:

我正在为 Android 编写简单的 C 库

我正在尝试从源代码构建 libxml2 作为静态库,所以我可以在我的代码中使用它。我正在使用 Eclipse,我想在 NDK 中的 C 函数中使用 libxml2。

我将源代码导入到名为 libxml 的新文件夹到项目中,并在 Android.mk 中输入:

include $(CLEAR_VARS)
LOCAL_MODULE    := libmyxml2
LOCAL_SRC_FILES := \
    ...  all c files from libxml .. \
    ...
include $(BUILD_STATIC_LIBRARY)

在我的共享库部分:LOCAL_MODULE := myxml2

在项目属性 -> 路径和符号 -> 包含 .. 我有 GNU C 下用于 libxml 的包含文件的目录

当我开始构建时,编译器告诉我错误:没有这样的文件或目录 它找不到包含。

我在windows系统上。

是否有任何教程或建议如何以简单易懂的方式在 NDK 的 C 代码中使用 libxml2?

如何自己为android构建libxml2并在Eclipse下开始使用?

谢谢

【问题讨论】:

标签: android android-ndk libxml2


【解决方案1】:

这是如何将 libxml2 构建为 android 的静态库的答案。 Using libxml for Android 如果静态库成功构建,您可以轻松地将其链接到您正在编写的应用程序。您还可以下载 libxml2 以及已经为您编写的 Android.mk 文件,然后使用 NDK (https://github.com/android/platform_external_libxml2) 构建它。

【讨论】:

  • 我似乎做得对,按照上面的 github 并构建它,但不知何故它失败并出现以下链接器错误。 [armeabi-v7a] SharedLibrary:libxml2.so /usr/local/src/android-ndk-r9c/Android_libxml2/jni/encoding.c:109:错误:未定义引用'ucnv_open_52'/usr/local/src/android- ndk-r9c/Android_libxml2/jni/encoding.c:115:错误:未定义引用“ucnv_setToUCallBack_52”/usr/local/src/android-ndk-r9c/Android_libxml2/jni/encoding.c:119:错误:未定义引用'ucnv_setFromUCallBack_52' 还有更多。
  • 我已成功运行自述文件中的命令。甚至运行所述的测试并且它们有效。但是现在编译的库在哪里呢?
猜你喜欢
  • 1970-01-01
  • 2013-04-05
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多