【CMake】顶层 CMakeList.txt 常用命令总结

文章目录

cmake_minimum_required

简介

  • 功能:为项目设置cmake的最低要求版本
  • 常用程度:⭐⭐⭐⭐⭐
  • 命令格式
bash 复制代码
cmake_minimum_required(VERSION <min>[...<policy_max>] [FATAL_ERROR])
  • 命令详解
    • <min>和<policy_max>的格式:major.minor[.patch[.tweak]]
      • major:主版本号
      • minor:次版本号
      • patch:补丁版本号
      • tweak:微调版本号
    • 如果执行构建的cmake版本低于<min>,项目构建会停止并且会报告错误
    • <policy_max>如果指定,必须至少为<min>,影响策略设置。

使用案例

  • Windows终端查看cmake版本
bash 复制代码
cmake --version
  • 输出当前版本号为3.28.3:
bash 复制代码
D:\Test\projectX\build>cmake --version
cmake version 3.28.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

普通设置

  • CMakeLists.txt中的内容
bash 复制代码
cmake_minimum_required(VERSION 3.27)
  • 【✅】执行cmake构建命令后的输出
bash 复制代码
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19045.
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: D:/Test/projectX/build

执行构建的cmake版本低于<min>

  • CMakeLists.txt中的内容

    bash 复制代码
    cmake_minimum_required(VERSION 3.30)
  • 【❌】执行cmake构建命令后的输出:

    bash 复制代码
    -- Selecting Windows SDK version 10.0.19041.0 
    to target Windows 10.0.19045.
    CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
      CMake 3.30 or higher is required.  You are running version 3.28.3
    
    
    -- Configuring incomplete, errors occurred!   

project

简介

  • 功能:设置项目信息
  • 常用程度:⭐⭐⭐⭐⭐
  • 命令格式
bash 复制代码
project(<PROJECT-NAME> [<language-name>...])
project(<PROJECT-NAME>
         [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
         [DESCRIPTION <project-description-string>]
         [HOMEPAGE_URL <url-string>]
         [LANGUAGES <language-name>...])
  • 命令详解

使用案例

普通设置

  • CMakeLists.txt中的内容
bash 复制代码
cmake_minimum_required(VERSION 3.20)
project(projectX)
  • 【✅】执行cmake构建命令后的输出
bash 复制代码
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19045.
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: D:/Test/projectX/build

set

简介

  • 功能:设置变量值
  • 常用程度:⭐⭐⭐⭐⭐
  • 命令格式
bash 复制代码
set(<variable> <value>... [PARENT_SCOPE])
  • 命令详解

使用案例

普通设置

  • CMakeLists.txt中的内容
bash 复制代码
cmake_minimum_required(VERSION 3.20)
project(projectX)

set(CMAKE_CXX_STANDARD 11)
  • 【✅】执行cmake构建命令后的输出
bash 复制代码
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19045.
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: D:/Test/projectX/build
相关推荐
把我格子衫拿来14 小时前
VTK 与 Qt 的 CMake 工程怎么组织?模块、工具链与二进制兼容排错
c++·qt·vtk·cmake·工程实践
JMchen7 天前
集成第三方 C/C++ 库到 Android NDK 项目:OpenCV 与 FFmpeg 实战指南
android·opencv·cmake
阿钱真强道19 天前
15 嵌入式操作系统 | 库的下载、编译、安装与验证(libubox / ubus / uci)
ubuntu·cmake·uci·ubus·libubox
阿钱真强道20 天前
22 嵌入式操作系统 | 串口命令行调试(socat / stty / printf / hexdump)
ubuntu·cmake·uci·ubus·libubox
五_谷_丰_登1 个月前
cmake脚本学习——持续更新
脚本·cmake
程序员老陆1 个月前
CMake 常用关键字与命令全景:从 set到 target_link_options的现代工程视角
c++·cmake·程序开发
idealzouhu1 个月前
现代 CMake 依赖管理详解:从构建树、Target 封装到 find_package 工作原理
c++·cmake
小王C语言1 个月前
cmake教程
c++·cmake
雾里看山1 个月前
源码目录、构建目录与 out-of-source build
c++·软件构建·cmake
ysu_03141 个月前
工具链通关02-CMake进阶超100个文件
cmake