2.CmakeList.txt文件详解
CMakeLists.txt 简析
使用AndroidStudio3.4创建一个C/C++
项目,默认在app/src/main
下生成cpp目录,其中有一个CMakeLists.txt和native-lib.cpp。
看一下CMakeLists.txt中中的内容,去掉注释
cmake_minimum_required(VERSION 3.4.1)
add_library(
native-lib
SHARED
native-lib.cpp)
find_library(
log-lib
log)
target_link_libraries( # Specifies the target library.
native-lib
${log-lib})
常用的配置命令
cmake_minimum_required、
cmake_minimum_required(VERSION 3.4.1)
cmake_minimum_required这个代表最低的支持版本,可以不加。这样就使用默认的版本,如果想使用高版本的api,这个是必须加上的。
aux_source_directory
aux_source_directory(. DIR_SRCS)
作用和注意点
- 查找当前目录所有源文件,并将源文件名称列表保存到DIR_SRCS变量
- 不能查找子目录
常用命令
add_library
添加一个库
add_library(<name> [ STATIC | SHARED |MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN)
- 添加一个库文件,名字叫
- 指定STATIC,SHARED,MODULE参数来指定库的类型。STATIC:静态库;SHARED:动态库,MODULE:在使用dyld的系统有效,若不支持dyld,等同于SHARED
- EXCLUDE_FROM_ALL:表示该库不会被默认构建
- source1 source2 … sourceN :用于指定库的原文件
导入预编译的库
- 添加一个已存在的预编译库,名为
- 一般配合
set_target_properties
使用
add_library(<name> <SHARED|STATIC|MODULE|UNKNOEN> IMPORTED)
# 比如
add_library(test SHARED IMPORTED)
set_target_properities(
test # 指定目标库名
PROPERTIES IMPORTED_LOCATION # 指定要设置的参数库路径/${ANDROID_ABI}/libtest.so #导入库的路径
)
set
设置CMake的变量
# 设置可执行文件的输