Android CMake.txt

CMake是一款比make更强大的编译自动配置工具,它可以根据不同平台、不同的编译器,并通过CMakeLists.txt文件中简单的语句来描述所有平台的编译过程,生成相应的Makefile文件或project文件。CMake被引入于AndroidStudio2.2,其目的是替代原有的JNI/DNK开发方法,使AS在进行JNI/NDK时更加的方便、高效。CMake的优势如下:

(1)   允许直接在C/C++代码中加入断点,调试;

(2)   在Java层中使用“ctrl+左键”快捷键能够直接进入本地方法对应的C/C++代码中;

(3)   在C/C++中使用“ctrl+鼠标点击”快捷键能够直接进入头文件或库;

(4)   自动生成函数原型头文件,无需配置android.useDeprecatedNdk=true属性;


 CMakeLists.txt:cmake脚本配置文件,cmake会根据该脚本文件中的指令去编译相关的C/C++源文件,并将编译后产物生成共享库或静态块,然后Gradle将其打包到APK中。CMakeLists.txt文件解析如下:



# 指定cmke版本  
cmake_minimum_required(VERSION3.4.1)  
# add_library()命令用于向CMake添加依赖源文件或库  
# 指令需传入三个参数(函数库名称、库类型、依赖源文件相对路径)  
add_library(  # 生成函数库的名称,即libnative-lib.so或libnative-lib.a(lib和.so/.a默认缺省)  
             native-lib  
             # 生成库类型:动态库为SHARED,静态库为STATIC  
             SHARED  
             # 依赖的c/cpp文件(相对路径)  
             src/main/cpp/native-lib.cpp )  
# find_library()命令用于定位NDK中的库  
# 需传入两个参数(path变量、ndk库名称)  
find_library(  # 设置path变量的名称,这里为NDK中的日志库  
              log-lib  
                            #指定cmake查询库的名称  
                            #即在ndk开发包中查询liblog.so函数库,将其路径赋值给log-lib  
              log )  
#target_link_libraries()命令用于指定要关联到的原生库的库  
target_link_libraries(# 指定目标库,与上面指定的函数库名一致  
                  native-lib  
                  # 链接的库,根据log-lib变量对应liblog.so函数库  
                  ${log-lib} )  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值