Android NDK(二)、CMakeList文件参数说明
1、指定cmake的最低版本
cmake_minimum_required(VERSION 3.4.1)
2、add_library
2.1、添加一个库
- 添加一个库文件,指定名称
- 指定
STATIC
,SHARED
,MODULE
参数来指定库的类型。STATIC
:静态库;SHARED
:动态库;MODULE
:在使用dyld
的系统有效,若不支付dyld
,等同于SHARED
。 - EXCLUDE_FORM_ALL:表示该库不会默认构建。
- source1 source2 …sourceN:用来指定库的源文件。
add_library(
native-ndk
SHARED
native_ndk.cpp
)
2.2、导入预编译库
- 添加一个已存在的预编译库,指定名称
- 一般与
set_target_properties
使用
add_library( ffmpeg
SHARED
IMPORTED
)
set_target_properties( ffmpeg
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/libffmpeg.so
)
3、set设置变量
#设置C++编译参数(CMAKE_CXX_FLAGS是全局变量)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
4、设置头文件目录
#引入include目录下的所有头文件
include_directories(src/main/cpp/include)
5、目标库链接设置
target_link_libraries
- 将若干库链接到目标库文件,注意库的添加顺序,目标库在最前面,链接库在后面,链接库可以有多个。
target_link_libraries( native-ndk
${log-lib}
)
6、设置子目录编译
- 如果当前目录下还有子目录时可以使用
add_subdirectory
,子目录中也需要包含有CMakeLists.txt
7、设置第三方so库路径
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}")