signed

QiShunwang

“诚信为本、客户至上”

【CMake】CMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )

2020/12/28 14:59:11   来源:

文章目录

  • 一、Android NDK 构建脚本
  • 二、CMake 构建脚本示例
  • 三、CMake 命令手册
    • 1、CMake 脚本命令
    • 2、CMake 工程命令





一、Android NDK 构建脚本



Android 中使用 NDK 编译 C/C++ 源码有两种方式 , 参考 Android 官网 https://developer.android.google.cn/ndk/guides ;


方式一 : 使用 ndk-build 脚本 , 包括 Android.mk 和 Application.mk 两个脚本 , 详细的细节参考如下链接

  • ndk-build
  • Android.mk
  • Application.mk
  • 使用预构建的库

老的 Android 开发环境使用的是这种方式编译 C/C++ 源码 ;


方式二 : 使用 CMake 构建脚本 CMakeLists.txt 编译 C/C++ 源码 , 参考如下链接

  • CMake

这是目前 Google 官方推荐的方式 ;





二、CMake 构建脚本示例



下面的构建脚本中用到了很多命令 , 如

  • cmake_minimum_required
  • add_library
  • set_target_properties
  • message
  • find_library
  • set
  • target_link_libraries

上述命令都是 CMake 命令 , 可以在 CMake 命令文档中查询 , 当前 CMake 中有 47 47 47 个脚本命令 , 46 46 46 个工程命令 ;


CMake 构建脚本示例 :


# 指定 CMake 最低版本
cmake_minimum_required(VERSION 3.4.1)

# 设置函数库编译
add_library( # 参数 1 : 设置生成的动态库名称
        native-lib

        # 参数 2 : 设置生成的函数库类型 : ① 静态库 STATIC ② 动态库 SHARED
        SHARED

        # 参数 3 : 配置要编译的源文件
        native-lib.cpp)


# 引入静态库
#       ① 参数 1 ( add ) : 设置引入的静态库名称
#       ② 参数 2 ( SHARED ) : 设置引入的函数库类型 : ① 静态库 STATIC ② 动态库 SHARED
#       ③ 参数 3 ( IMPORTED ) : 表示引入第三方静态库 , 导入静态库 , 相当于预编译静态库
#                                   后续还需要设置导入路径 , 配合该配置使用
add_library(
        # 设置引入的静态库名称
        add

        # 设置引入的函数库类型为静态库
        STATIC

        # 表示引入第三方静态库
        IMPORTED)

# 设置上述静态库的导入路径
#       设置目标属性参数 :
#           ① 参数 1 ( add ) : 要设置哪个函数库的属性
#           ② 参数 2 ( PROPERTIES ) : 设置目标属性
#           ③ 参数 3 ( IMPORTED_LOCATION ) : 设置导入路径
#           ④ 参数 4