为 Android NDK 编译库
Compiling Libs for Android NDK
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文件。
- Android NDK 编译 LAME HAVE_MPGLIB > 'interface.h' 文件未找到
- 为 Android NDK 编译库
- 将预编译的 C 共享库与 JNI/NDK 结合使用
- 使用 Android NDK 使用 clang++ 编译C++代码时对"_Unwind_Resume"的未定义引用
- "ndk-build finish with non-zero exit value 2" 在编译文本仙女项目时
- 在 NDK 上编译两个带有 gradle 的项目,其中一个依赖于另一个的二进制文件
- 编译 android .so 库在 Visual Studio 错误与 android ndk 15c __signbi
- C/C 代码与不同NDK编译的C/C 代码的兼容性
- 使用WEBRTC编译NDK项目
- 交叉编译时 NDK 工具链中的 /system/bin/linker 在哪里
- 为什么我们需要使用android工具链(或NDK)来编译在android应用程序上下文中运行的c/c++代码
- 如何编译安卓 ndk 活页夹源代码
- Android ndk: utils/Log.h: 没有这样的文件或目录编译终止
- 如何在eclipse Android(NDK)中编译C/C++代码
- 使用与Application.mk中定义的STL不同的STL编译android ndk模块
- Android NDK:使用的静态库与指定的预编译库不同
- 使用 Android NDK 编译原生C++共享对象
- 使用 ndk clang 3.4/3.5 编译__thread没有运气
- 如何使用 Android NDK 编译带有成员函数的结构
- 使用RefBase或IBinder时,__Atomic导致NDK编译错误