1.编译多个cpp文件到一个so库
cmake_minimum_required(VERSION 3.4.1)
#修改编译源文件目录
file(GLOB native_srcs "${CMAKE_SOURCE_DIR}/src/main/cpp/hello/*.cpp")
add_library(helloNDK SHARED ${native_srcs})
find_library(log-lib log)
target_link_libraries(helloNDK ${log-lib})
关键就在注释那里,通过 file
命令声明了一个文件路径变量,然后在add_library
直接用${名字}
直接访问就行
2.添加子目录的cmakeLists编译路径
#获取所有CMakeLists.txt所在子目录
file(GLOB subdir "${CMAKE_SOURCE_DIR}/src/main/cpp/*")
#通过for循环获取每个子目录添加到编译
foreach (dir ${subdir})
ADD_SUBDIRECTORY(${dir})
endforeach ()
我的项目目录如下
每个目录下都有对应的CMakeLists.txt,这样就能输出三个so文件
image.png
我改一下代码打印一下三个路径,注意我们用
message( FATAL_ERROR "exit")
让程序停止才能看到日志,代码如下
#获取所有CMakeLists.txt所在子目录
file(GLOB subdir "${CMAKE_SOURCE_DIR}/src/main/cpp/*")
#通过for循环获取每个子目录添加到编译
message("---------1----------")
foreach (dir ${subdir})
message( ${dir})
endforeach ()
message("----------2---------")
message( FATAL_ERROR "exit")
效果图如下
image.png
网友评论