一.aux_source_directory(. DIR_SRCS)
- 查找当前目录所有源文件 并将源文件列表保存到DIR_SRCS变量中
- 不能查找子目录
二.add_library
2.1 添加一个库
image.pngadd_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROME_ALL]) source1 source2....sourceN
# 将native-lib.cpp添加为名为native-lib的动态库
add_lib rary(
native-lib
SHARED
native-lib.cpp )
三.Android 6.0以后导入预编译的库
3.1 添加一个C的动态库
CMAKE_C_FLAGS:是C的参数,表示动态库的位置,会传递给编译器
3.2 添加一个C++的动态库
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L[SO所在目录]")
四.include_directories
设置头文件目录
include_directories(./include ${MY_INCLUDE})
- 设置头文件目录
- 相当于g++选项中的-I参数
五.add_executable
设置可执行文件
add_executable(<name> ${SRC_LIST})
- name 可执行文件的名字
- ${SRC_LIST} 可执行文件的文件
六.target_link_libraries
将若干库连接到目标库文件
target_link_libraries(<name> lib1 lib2 lib3)
七.file
file命令八.多源文件处理
使用aux_source_directory或者file将多个源文件保存到变量中
#查找当前目录所有源文件,不查找子目录
aux_source_directory(. DIR_SRCS)
# 也可以
# file(GLOB DIR_SRCS *.c *.cpp)
add_library(
native-lib
SHARED
${DIR_SRCS}
)
一些内置变量
- ${CMAKE_SOURCE_DIR} CMakeLists.txt所在目录
例子
引入so库
网友评论