为 Android NDK 编译库

Compiling Libs for Android NDK

本文关键字:编译 NDK Android      更新时间:2023-10-16

Android 菜鸟在这里。 我正在尝试创建一个基于OpenGL ES的Android应用程序,该应用程序将运行本机代码,并且我正在使用CMake来构建它。

现在我有一个C++库,我需要针对Android NDK代码包含,导入和链接(.a文件(。 我知道该库需要针对 Android 进行交叉编译,但是如果我只构建 Linux 二进制文件(.a 文件(并将其与它链接,它会起作用吗?

此外,C++库是使用 Windows 平台和 CMake 构建的,CMake 生成 .lib(Windows 的静态库版本(。 从Windows平台生成.a文件的最佳方法是什么(Windows的Linux的静态库版本(?

现在我有一个C++库,我需要包含、导入和链接(.a 文件(针对 Android NDK 代码。我知道该库需要针对 Android 进行交叉编译,但是如果我只构建 Linux 二进制文件(.a 文件(并将其与它链接,它会起作用吗?

不会的。这是因为它们属于不同的平台。它们都使用相同的格式(.a(,但这并不意味着它们是兼容的。例如,它们使用不同的标准库。因此,您必须针对Android进行交叉编译。

此外,C++库是使用 Windows 平台和 CMake 构建的,CMake 生成 .lib(Windows 的静态 lib 版本(。从Windows平台生成.a文件的最佳方法是什么(Windows的Linux的静态库版本(?

由于您的C++库使用 CMake 和 Android NDK 正式支持 CMake 构建,因此这并不难。

您可以下载适用于 Windows 的 Android NDK。然后尝试CMake指南。基本上你应该做的是将工具链文件作为CMake参数传递(加上一些参数,如ABI,API级别,...因此,您可能不需要编辑CMake文件。