【发布时间】:2020-02-17 20:40:42
【问题描述】:
我需要使用 CMakeLists.txt 将预构建的“.a”静态库链接到 Android Studio 项目。
.a 库是为 armeabi、armeabiv-7a、mips 和 x86 正确构建的(它甚至可以被“objdumped”用于“内容检查”),并且“.h”文件也恰到好处。
我们的目标不是将库源代码与我的 Android Studio 项目原生源代码一起重新编译。
另外,请不要参考使用 NDK + Andoid.mk(仅限 CMakeLists.txt)的解决方案。
由于网络上没有关于此问题的有效示例(包括 Google NDK 文档和 SO),请提供项目文件和/或项目结构所需的所有更改。
我将“.a”文件及其“include”目录保存在本地文件夹中,因此作为对该位置的元引用,请考虑 /lib.a 和 /include。
谢谢。
【问题讨论】:
-
“因为网络上没有关于这个问题的有效示例” - 真的吗?你试过搜索吗?例如。那个问题:stackoverflow.com/questions/39202936/…
-
我试过了。它不起作用。至少不适用于静态库。我得到的是一条消息,说我在静态库上调用的每个函数都是“未定义的引用”。我通过提供完整路径来强制 C++ 代码包含正确的头文件。所以,我相信静态库毕竟没有被链接。
-
您使用
target_link_libraries复制库,不是吗?请出示您的代码 (CMakeLists.txt)。
标签: android gradle cmake static linker