【发布时间】:2021-09-13 08:29:10
【问题描述】:
我是 CMake 的新手。今天,我在我的 Android/Java/JNI/CMake 项目中使用了我的 CMakeLists.txt 文件中的以下代码:
include_directories(lib1)
file(GLOB_RECURSE LIB1_SOURCES
"bund.cc"
"bund.h"
"bund_io.cc"
"bund_io.h"
"cam.cc"
"cam.h"
"defines.h"
)
include_directories(lib2)
file(GLOB_RECURSE LIB2_SOURCES
"allocator.h"
"memory.h"
"arguments.cc"
"arguments.h"
"defines.h"
)
add_library(native-lib SHARED ${LIB1_SOURCES} ${LIB2_SOURCES} native-lib.cpp)
find_library(log-lib log)
target_link_libraries(native-lib ${log-lib})
作为CMake documentation'不建议使用GLOB 从源代码树中收集源文件列表',我想知道在我的CMakeLists.txt 中替换此代码的推荐方法是什么。请注意,我在 lib1 和 lib2 目录中都有一个“defines.h”,可能需要采取一些特定的预防措施。
我的项目结构是:
-cpp (with mib-native.cpp and CMakeLists.txt inside)
--lib1 (with .h and .cc files mixed inside)
--lib2 (with .h and .cc files mixed inside)
如果您能提供我必须放入我的 Android 项目中的详细代码,我将不胜感激。
【问题讨论】:
-
只在
add_library命令中明确列出源文件和头文件?
标签: java c++ cmake android-ndk java-native-interface