1、先简单介绍一下CMake是一个跨平台的编译工具,可以用简单的语句来描述所有平台的编译过程。他能够输出各种各样的makefile或者project文件,所有的语句都写在一个叫:CMakeLists.txt的文件中。
2、android studio工程目录结构
3、先上一个完整版本的CMakeLists.txtcmake_minimum_required(VERSION 3.4.1)include_directories(src/main/cpp/include/)add_definitions(-D_LINUX -D_ANDROID)add_library( native-lib SHARED src/main/cpp/native-lib.cpp )add_library(othermodule SHARED IMPORTED)set_target_properties(othermodule PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libothermodule.so)find_library(log-lib log )target_link_libraries( native-lib othermodule ${log-lib})
4、简单介绍一下基本语法cmake_minimum_required(VERSION 3.4.1)用于指定cmake的最小版本要求
5、用于指定头文件的目录include_directories(src/main/cpp/include/)
6、定义jni编译宏和其它编译参数add_definitions(-D_LINUX -D_ANDROID)
7、指定生成库的名称和类型,编译使用的c/c++文件add_library( native-lib SHARED src/main/cpp/native-lib.cpp )
8、引用第三方库,这是第三库引用的方式add_library(othermodule SHARED IMPORTED)set_target_properties(othermodule PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libothermodule.so)
9、引用android系统的系统库,如log库,是打印日志用的库find_library(log-lib log )
10、与第三库链接生成目标native-lib库target_link_libraries( native-lib othermodule ${log-lib})