【发布时间】:2012-06-02 15:49:24
【问题描述】:
有人可以帮我为 LibXtract 编写 Android.mk 或指出正确的方向吗?
这是 lib 的源代码 - https://github.com/jamiebullock/LibXtract.git
或者也许有办法在 Android 中使用 linux 生成的共享对象?
【问题讨论】:
标签: android linux audio android-ndk
有人可以帮我为 LibXtract 编写 Android.mk 或指出正确的方向吗?
这是 lib 的源代码 - https://github.com/jamiebullock/LibXtract.git
或者也许有办法在 Android 中使用 linux 生成的共享对象?
【问题讨论】:
标签: android linux audio android-ndk
特别是对于较大的已建立项目,制作Android.mk 文件是一项艰巨的任务。更重要的是,如果您不熟悉 Android NDK 构建架构,其理解需要深入研究文档和 Android NDK make 文件。我建议尝试通过设置CC 指向您的NDK 工具链和CFLAGS += -sysroot $(SYSROOT) 其中SYSROOT=${NDK_INSTALL_DIR}/platforms/android-<level>/arch-<arch>/(取决于目标Android API 版本和架构)来尝试使用现有的make 文件。即使不知道你的图书馆,我敢打赌你应该有很大的成功机会。 Android NDK 文档 (${NDK_INSTALL_DIR}/doc/STANDALONE-TOOLCHAIN.html) 详细介绍了独立工具链的使用,并说明了如何创建一个独立工具链,该工具链不需要使用 -sysroot 参数到 xxx-gcc。
如果您决定改用 Android.mk,您可以检查现有项目 -CSipSimple 出现在我的脑海中(PJSIP 从标准形式的 GNU make 文件转换而来)。
重要的是使用 Android 工具链创建共享对象。可以在您的应用程序源代码树之外构建它们,然后只需将共享对象复制到包源 libs/<architecture>/ 目录中。
与您的构建系统的集成取决于未知的细节(包括您希望整个集成的顺利程度,例如,因为其他人在处理同一个项目)。如果您从命令行创建应用程序,最简单的方法是在包根目录中使用 GNU make 文件或 shell 脚本,确保 libXtract.so 并且您的应用程序包通过调用 libXtract make 文件 and ant 是最新的构建和打包您的 Java 应用程序。如果您使用ant,应该有一种方法可以指定使用make 来处理libXtract.so。我不确定 Eclipse 是否完全依赖 ant 来构建应用程序,以了解这是否足以通过在 Eclipse 中单击鼠标按钮来启用完整构建。
【讨论】:
The answer to this question 说你可以使用 cmake 脚本来构建 Android.mk 文件 - 我没有尝试过这种方法。
【讨论】: