android - Android CMake 使用 prebuild .a 库
问题描述
我对 CMake 完全陌生,并且共同使用 NDK。我想出编写我的 JNI 接口并使用 C 库中的 2 个方法。我将此库编译为静态库并获得了 .a 文件。现在我有点迷失了,因为我不明白如何告诉 Android Studio 在尝试查找调用的函数时使用这个库。
这是我当前的 CMakeLists.txt,它位于“app”模块文件夹中。
cmake_minimum_required(VERSION 3.4.1)
add_library(my-lib SHARED src/main/cpp/my-lib.cpp )
target_link_libraries(my-lib z crypto)
target_link_libraries(my-lib ${CMAKE_CURRENT_SOURCE_DIR}/../libs/libmine.a)
在编译时,我收到警告说找不到对被调用函数的引用。我的 CMakeLists.txt 是否正确以及如何包含函数的 .h 文件?提前感谢您的帮助!
解决方案
首先,您还需要使用 include_directories()命令指定包含目录。其次,您似乎想将静态库(.a)与您的最终共享库链接。这是无法做到的。您要么需要整个共享库,要么需要整个静态库。
推荐阅读
- javascript - 我正在尝试从 ES 类参数创建一个数组,但我得到一个空数组,为什么?
- kubernetes - Kubernetes 和故障转移服务
- r - 如何在 download_html 和 download.file 中使用 UTF-8 文件夹名称
- python - 努力让 Django 服务器在虚拟环境中运行
- ios - 使用用户 iOS 货币设置
- tensorflow - Tensorflow,如何实现排序层
- assembly - Shellcode:非法指令
- php - 不存在的 Codeigniter 不起作用
- python - 在函数内部调用 ThreadPoolExecutor 时不使用多个工作程序
- python - 使用 subprocess 模块运行 .bat 文件并将其传递给输入