c++ - 如何为 Android 编译我自己的 C++ 库?

标签 c++ android android-ndk

我用 C++ 编写并测试了一个库。如果我直接添加源文件,代码甚至可以在我的 Android 应用程序中运行。虽然我确实有为常见操作系统编译静态库和动态库的经验,但我对像这样的移动系统进行编译的经验为零。我已经做了一些研究,但对于如何解决这个问题我仍然有点迷茫。例如,我不确定是构建用于 ndk-build 的 makefile 还是直接调用 Android 的编译器之一。

我确实看到了 this question ,但它不太符合我的情况。我只想运行构建并让它吐出 libfoo.a (我也想生成 libfoo.so,但 libfoo.a 现在对我来说更感兴趣。)该问题的获胜答案中的示例暗示它将构建库作为构建最终应用程序的一个步骤/模块。我尝试这样做只是为了看看,但我没有运气。

任何人都可以指导我进行这项工作吗?

澄清——我不想构建库并立即将其通过管道传输到应用程序中。我想要一个 .a 或 .so 文件,我可以在未来的多个 Android 应用程序中对其进行链接。

最佳答案

创建一个包含空代码的虚拟 java 文件,并确保您的 C++ 代码中有一个 android_main 函数。使用 ndk-build 构建。生成的 apk 将使您的库成为一个应用程序。

查看 android-ndk-r5/samples 目录中的示例,查看示例 native-bitmap 以获得一些想法。

关于c++ - 如何为 Android 编译我自己的 C++ 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4937945/

相关文章:

android - 当我的 HomepageActivty 扩展了 ActionBarActivity 时,我在使用 List Activity 时遇到了问题

android - SearchView 上的边距太多

android - 我的 NDK 项目因 CPU 架构相关问题而无法编译

c++ - 这段 C++ 代码是如何工作的?

c++ - 在没有 C++11 的情况下使用 unique_ptr

c++ - wcstombs_s "Cannot convert argument"DirectX-11

android - 通过 osx 命令行构建 tess-two 的问题

c++ - 单元测试框架——POS应用

Android 4.2.2 不兼容

android - 如何在运行时打开/关闭 ndk 中的原生日志猫