好的,我们继续 第二课:CMakeLists.txt 的基本语法与结构。
🎯 目标:掌握 CMakeLists.txt 文件的基本构成与常见命令
一、CMakeLists.txt 是什么?
这是 CMake 的配置脚本,定义了:
-
项目名
-
最低版本要求
-
要编译哪些源文件
-
生成什么类型的目标(可执行程序、库等)
二、最基本的 CMakeLists.txt 示例结构
cmake_minimum_required(VERSION 3.10) # 1. 要求的最低 CMake 版本
project(HelloCMake) # 2. 项目名称
add_executable(hello main.cpp) # 3. 创建可执行文件
三、逐句讲解
1️⃣ cmake_minimum_required(VERSION 3.10)
指定你这个项目最少支持的 CMake 版本。
推荐用法:
-
如果你使用的是比较新的 CMake,可以写成
3.16、3.20等; -
不建议写得太低,否则可能用不了一些新功能。
2️⃣ project(HelloCMake)
定义项目的名称。
你可以加上语言和版本信息:
project(HelloCMake VERSION 1.0 LANGUAGES CXX)
-
VERSION 1.0:声明版本 -
LANGUAGES CXX:声明使用的是 C++,可以写成C CXX表示同时支持 C 和 C++
3️⃣ add_executable(hello main.cpp)
告诉 CMake:我要编译一个名为
hello的可执行文件,它的源文件是main.cpp。
四、可选:设置 C++ 标准
现代 CMake 推荐对目标设置语言标准:
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
或者用目标方式(更推荐):
target_compile_features(hello PRIVATE cxx_std_17)
这两种方式都能让你使用 C++11 / C++14 / C++17 / C++20 特性。
✅ 实战小练习
你可以把刚才的 CMakeLists.txt 修改为如下版本,更加完整:
cmake_minimum_required(VERSION 3.10)
project(HelloCMake VERSION 1.0 LANGUAGES CXX)
# 创建可执行文件
add_executable(hello main.cpp)
# 设置 C++ 标准
target_compile_features(hello PRIVATE cxx_std_17)
然后在 build 目录中重新构建:
cmake .. -G "Visual Studio 17 2022"
cmake --build . --config Release
⏮️ 上一课回顾:【CMake基础入门】学习规划&第一课什么是CMake?
⏭️ 下一课预告:【CMake基础入门】第三课:构建系统与构建类型详解
下一课我们将讲解:
-
build目录的作用 -
如何区分 Debug 和 Release 构建
-
cmake ..背后到底发生了什么? -
用命令控制生成器、平台、工具链

1066

被折叠的 条评论
为什么被折叠?



