CMake简介

1.前言

CMake是一种代码构建工具,通过此工具可以设置编译哪些代码?编译成什么(so、lib、a还是可执行文件)?需要哪些依赖?以及编译完成后的目标目录等。本文对AS默认形成的CMakeList中的一些语法做简单讲解。

2.指定cmake最小版本

cmake_minimum_required(VERSION 3.4.1)

可以不指定最小版本,但是如果用到了高版本的一些特性而本身安装的版本较低时就会有问题,所以建议添加一下。

3.添加库文件

add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN)

通过此命令可以生成一个库文件,其中name为要生成的库文件的名字,后续参数表示指定为静态.a库还是动态的.so库,后续则是源码。如果是几个简单的源文件则可以直接指定,参照默认的CMakeList形式。也可以通过添加add_library命令生成多个库文件

4.导入库文件

导入一个库文件仍需要add_library命令,通过不同的参数来表达要引入一个库,但是需要set_target_properties命令来表达导入库的参数,比如库存放的目录

add_library(test SHARED IMPORTED)
set_target_properties(  test #指定目标库名称
                        PROPERTIES IMPORTED_LOCATION #指明要设置的参数
                        /XX/XXX/libtest.so #设定导入库的路径)                        

5.查找系统库

使用find_library来查找系统相关的库或第三方库,比如log相关的:

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 )

6.链接库文件

导入库文件后还要根据需要链接库文件,则需要target_link_libraries( lib1 lib2 lib3)方法:

target_link_libraries( # Specifies the target library.
                       native-lib

                       # Links the target library to the log library
                       # included in the NDK.
                       ${log-lib} )

结语

以上是基于AS生成的基本CMakeList中的基本语法讲解,对于大部分的简单开发已经够用了。最多参考几篇文章处理一下,如果较为复杂的工程也不是三言两语能说清楚的,还需要去探索。附几篇更详细的命令解释与入门文章:

附录一:基本语法
附录二:基本语法
附录三:较复杂示例

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值