CMakeLists文本文件的配置
引入第三方c语言库文件和生成c语言库文件的配置
下面是add_library的语法结构
add_library(<name> [STATIC | SHARED | MODULE]
[EXCLUDE_FROM_ALL]
[source1] [source2] [...])
其中STATIC | SHARED | MODULE所表示的含义为
STATIC | 是目标文件的归档文件,在链接其它目标的时候使用(静态库) |
---|---|
SHARED | 动态链接库,在运行时被加载 |
MODULE | 不会被链接到其它目标中的插件 |
//CMAKE语言版本
cmake_minimum_required(VERSION 3.4.1)
//CMAKE_SOURCE_DIR 表示当前CMakeLists.txt文件所在目录
set(CURRENT_DIR ${CMAKE_SOURCE_DIR})
message("CURRENT_DIR:" ${CMAKE_SOURCE_DIR})
#include的文件夹
include_directories(${CURRENT_DIR}/src/main/jni/prebuilt/include)
include_directories(${CURRENT_DIR}/src/main/jni/include)
//即将要生成的库文件配置
add_library(
native-lib
SHARED
${CURRENT_DIR}/src/main/cpp/native-lib.cpp )
//引入第三方的库文件配置
add_library(
libcrc32
SHARED
IMPORTED)
set_target_properties(
libcrc32
PROPERTIES IMPORTED_LOCATION
//ANDROID_ABI 表示Android 所支持的系统平台
//armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips、mips64
//默认支持全部,也可以指定其中的某一个
${CURRENT_DIR}/src/main/jniLibs/${ANDROID_ABI}/libcrc32.so)
find_library(android_lib android)
find_library(log-lib log )
target_link_libraries(
native-lib
libcrc32
${android_lib}
${log-lib} )