一、CMakeLists 相关命令解释
cmake_minimum_required 命令
- 核心作用:用于指定项目所需的最低 CMake 版本。这是一个强制性要求,必须放在项目顶层
CMakeLists.txt文件的第一行。 - 关键参数解释
- 基本语法形式:
cmake_minimum_required(VERSION <min> [...<policy_max>] [FATAL_ERROR]) <min>:最重要的参数,用于指定一个最低版本号(例如3.18)。如果当前运行的 CMake 版本低于此版本,配置将失败。<policy_max>(可选):用于指定一个最高策略版本,此选项较少使用。FATAL_ERROR(可选):显式指定版本不满足时报错并终止流程。对于 CMake 2.6 及以后的版本,这是默认行为,因此现代项目中通常无需再写。
- 基本语法形式:
- 版本号设置参考:设置版本号时需考虑不同操作系统和发行版的软件源中预装的 CMake 版本。例如 Ubuntu 22.04 约 v3.22,Ubuntu 24.04 约 v3.28。
- 为何必须设置:确保项目能在符合要求的构建环境中正确配置,避免因开发者本地 CMake 版本过旧或过新而引发不可预见的错误,保证项目构建的一致性和可重现性。

project 命令
- 核心作用:用于指定项目的名称,是 CMake 项目的核心标识。此命令必须放在顶级
CMakeLists.txt文件的开头位置(通常在cmake_minimum_required之后)。 - 自动创建变量:执行
project()后,CMake 会自动创建一系列变量供后续使用,例如:PROJECT_NAME: 项目名称PROJECT_VERSION: 项目的完整版本号PROJECT_SOURCE_DIR: 项目源代码的根目录路径PROJECT_BINARY_DIR: 项目构建的输出目录路径
- 主要用途:作为项目的唯一标识;用于自动生成库文件名、配置文件名等;管理项目的版本信息;定义项目源代码和构建结果的路径。
- 常见变量使用:
PROJECT_NAME可用于动态库输出名称、cmake 配置文件名称、命名空间名称。PROJECT_VERSION可用于打印变量、生成 pkg-config 或.cmake 对应的版本配置文件。



