【CMake基础入门教程】第二课:CMakeLists.txt 的基本语法与结构

好的,我们继续 第二课: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.163.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

 bash语句示例注解


⏮️ 上一课回顾:【CMake基础入门】学习规划&第一课什么是CMake?

⏭️ 下一课预告:【CMake基础入门】第三课:构建系统与构建类型详解

下一课我们将讲解:

  1. build 目录的作用

  2. 如何区分 Debug 和 Release 构建

  3. cmake .. 背后到底发生了什么?

  4. 用命令控制生成器、平台、工具链


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

奇异果冻

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

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

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

打赏作者

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

抵扣说明:

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

余额充值