cmake跨平台构建工具

前言

  • CMake是一个跨平台的安装编译工具,可以用简单的语句来描述所有平台的安装(编译过程)。
  • CMake可以说已经成为大部分C++开源项目标配

因此,作为一名C C++发开人员,看到cmake不应该一脸茫然…

作为初学者,通俗的认为cmake就是一个linux下自动构建makefile等文件的实用工具!

广泛使用cmake的原因: 跨平台开发方便共享操作,使写Makefile更简便;

跨平台开发

假设有一个跨平台项目,其中C++代码可能会在不同的OS系统/IDE上共享;

  • Win下的VS
  • Linux下的gcc
  • MAC下的Xcode

在这里插入图片描述

当我们想添加一个bar.cpp 的源文件,我们就需要将其添加到各种OS使用的每个工具中:

在这里插入图片描述

为了保持运行环境的一致性,则必须多次进行类似的更新,还必须手动执行(在本例中,图中用红色标记的箭头)。

这种方法因为手动也容易出错,而且不灵活。

CMake通过在开发过程中添加额外的步骤解决这个设计缺陷

您可以在CMakeLists.txt文件中描述您的项目,并使用CMake自动生成构建项目的工具,使用跨平台CMake代码:
在这里插入图片描述

同样的操作-添加新的bar.cpp文件,现在只需一步即可完成:
在这里插入图片描述

跨平台的性质没有变,照样有很多不同的OS在共享代码,但是只需要一个cmake可以很好地维护起来;

CMake语法特性

基本语法格式:指令(参数 1 参数 2…)

  • 参数使用括号括起
  • 参数之间使用空格分号分开(这里有点违背我们用逗号分隔参数的习惯)

指令是大小写无关的,参数和变量是大小写相关的

  • 语法指令部分有点像SQL,是大小写无关的

  • set(HELLO hello.cpp) # 设置变量HELLO的函数,后续会介绍
    # 下面两条指令等价
    add_executable(hello main.cpp hello.cpp)
    ADD_EXECUTABLE(hello main.cpp ${HELLO})
    

    变量使用${}方式取值,但是在 if 条件控制语句中应直接使用变量名

CMake重要指令和常用变量

重要指令

cmake版本,项目工程,变量的设置:

  • cmake_minimum_required - 指定CMake的最小版本要求

    # 语法:cmake_minimum_required(VERSION versionNumber [FATAL_ERROR])
    
    # CMake最小版本要求为2.8.3
    2cmake_minimum_required(VERSION 2.8.3)
    
    

    linux下 cmake --version查看自己的cmake版本

  • project - 定义工程名称,并可指定工程支持的语言

# 语法:project(projectname [CXX] [C] [Java])   -- 方框中的为可选项

# 指定工程名为HELLOWORLD
project(HELLOWORLD)
  • set -
评论 100
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是大帅哥121

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值