【发布时间】:2021-09-13 13:33:08
【问题描述】:
我是 JNI/CMake 的新手。我创建了一个空的 Java/C++/JNI 项目。然后我在 3 个不同的文件夹中添加了 3 个库(= .h 和 .cpp 文件)。这是我的项目文件夹的结构:
-cpp (with lib-native.cpp and CMakeLists.txt inside)
--lib1usedbylib3 (with .h/.cpp files inside + CMakeLists.txt)
--lib2usedbylib3 (with .h/.cpp files inside + CMakeLists.txt)
--lib3thatneedslib1and2 (with .h/.cpp files inside + CMakeLists.txt)
现在我需要在 3 个 CMakeLists 文件中编写代码,但我没有设法做一些工作......我不想使用 GLOB,因为 CMake 似乎不推荐它,我想列出每个库的所有文件。我想在一个名为 native-lib(基于 lib-native.cpp 构建)的单个库中编译 3 个库
如果有人能告诉我在我的 3 个 CMakeLists 文件中要写什么,我将不胜感激。
非常感谢您的帮助!
【问题讨论】:
-
Google 有很多 NDK samples on github,所有/大部分都使用 CMake。您可能想查看这些,然后在 CMake 文档中查找您在其中找到的命令。
-
@Michael 谢谢。大多数示例中提到的“android”和“log”库是什么?例如这里:github.com/android/ndk-samples/blob/main/native-codec/app/src/… 什么是 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -UNDEBUG") 或 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wno-unused -功能”) ?谢谢。
-
liblog和libandroid实现了 the native Android APIs 的一部分。set设置一个 CMake 变量,在这两种特殊情况下,它用于添加一些 C 和 C++ 编译器标志。
标签: android c++ cmake android-ndk java-native-interface