AndroidStudio中CMakeLists文件的常见配置

本文详细介绍了CMake在Android JNI开发中的作用及配置方法,包括CMakeLists.txt的常见命令,如指定最低版本、添加库文件、查找系统库、链接库等,以及在app的build.gradle中的配置细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在安卓的JNI开发中,CMake是一个很重要的辅助工具,CMake是一个比make更高级的编译工具,在AS2.2版本及以上,CMake取代了make工具成为了默认的native库构建工具

2、CMakeLists.txt文件的一些常见命令配置

#指定cmake的最低版本号
cmake_minimum_required(VERSION 3.4.1)
#添加一个名称为native-lib的库文件
add_library( # Sets the name of the library.
			 #设置要添加的库文件的名称
             native-lib

             # Sets the library as a shared library.
             #指定添加的库文件是动态库还是静态库
             #STATIC:静态库   SHARED:动态库
             SHARED

             # Provides a relative path to your source file(s).
             #指定要添加的库的源文件路径
             native-lib.cpp )
#查找系统库,这里是将查找的系统库log赋值给变量log-lib
find_library( # Sets the name of the path variable
			  #变量
              log-lib

              # Specifies the name of the NDK library that
              # you want CMake to locate.
              #系统库
              log )
#将一些库链接到目标库
target_link_libraries( # Specifies the target library.
					   #目标库	
                       native-lib

                       #将lib1 lib2 lib3链接到目标库native-lib上
             		   #如果lib1依赖lib2  lib2又依赖于lib3,那么这三者的顺序只能是lib1  lib2  lib3而不能修改
                       lib1  lib2  lib3 )
#设置变量,dir_var:变量名称   src/main/cpp:变量的值
set(dir_var  src/main/cpp)
#查找当前目录所有源文件,并将查找到的源文件名称列表保存到变量DIR_SRCS中
aux_source_directory(. DIR_SRCS)
#设置头文件目录路径(可以是相对路径也可以是绝对路径)
#例如src/main/cpp/include目录下是一些.h的头文件
include_directories(src/main/cpp/include)
#添加可执行文件
add_executable(<name> ${SRC_LIST})
#Android6.0版本以后添加预编译库
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -L[so所在目录]") #c库
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L[so所在目录]") #cpp库

3、cmake在app的build.gradle中的配置

android {
    ...

    defaultConfig {
        ...

        externalNativeBuild {
            cmake {
                cppFlags ""
                abiFilters 'armeabi-v7a' //指定cpu的架构
            }
        }
    }

    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"  //指定CMakeLists.txt的路径,这里表示是在app目录下
        }
    }
    
    ...
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值