CMake系列讲解(入门篇)1.1 基础命令Cmake-cmake_minimum_required()


基础命令cmake_minimum_required()

〓〓〓〓〓〓〓〓踏实学CMake总目录〓〓〓〓〓〓〓〓〓〓


1. cmake_minimum_required

1.1 命令格式:

cmake_minimum_required(VERSION <min>[...<policy_max>] [FATAL_ERROR])

该命令指定了编译该工程对cmake的最高、最低版本要求,如果 CMake 的运行版本低于所需版本,它将停止处理项目并报告错误。

1.2 参数说明

  • VERSION : 版本号,cmake版本号的形式都为major.minor[.patch[.tweak]],如3.22.0,3.13.5
  • min:指定cmake编译要求的最低版本号
  • max:指定cmake编译要求的最高版本号
  • FATAL_ERROR

1.3 示例

假如当前cmake版本为3.10.2

  1. 仅指定min且大于当前版本
cmake_minimum_required(VERSION 3.21.0)
表示要求cmake最低版本为3.21.0,当前版本为3.10.2,小于指定最低版本,则会停止处理项目并报告错误

执行结果:

	CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  		CMake 3.21.0 or higher is required.  You are running version 3.10.2
	-- Configuring incomplete, errors occurred!
  1. 仅指定min且小于当前版本
camke_minimum_required(VERSION 3.5.0)

表示要求cmake最低版本为3.5.0,当前版本3.10.2,大于min, 则会正常处理项目

执行结果:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/xxx
  1. 指定min小于当前版本,指定max小于当前版本
camke_minimum_required(VERSION 3.1.3...3.1.5)

表示要求cmake最低版本为3.1.3,当前版本3.10.2,大于min, 大于max, 正常处理项目

执行结果:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/xxx
  1. 指定min小于当前版本,max大于当前版本
camke_minimum_required(VERSION 3.1.3...3.10.5)

表示要求cmake最低版本为3.1.3,当前版本3.10.2,大于min, 小于max, 正常处理项目

执行结果:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/xxx

可以看到,3和4在运行结果上并没有什么区别,即便实际运行版本高于max时,也是正常的,说明max并不是对使用cmake版本的最高版本限制。实际上它影响的是cmake的策略机制。有兴趣的话可以查阅资料了解。在这里先不做陈述。

1.4 注意事项

  1. 我们常常把cmake_minimum_required命令放在顶层CMakeLists.txt的最上边一行,以便在其他命令执行之前调用,这是因为后续的命令可能与版本相关。
  2. 如果在函数内部调用cmake_minimum_required,那么这个命令只在函数内部起作用。

附:返回总目录的传送门如下:

〓〓〓〓〓〓〓〓踏实学CMake总目录〓〓〓〓〓〓〓〓〓〓

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

在下马农

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

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

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

打赏作者

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

抵扣说明:

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

余额充值