环境

  • windows 11
  • cmake 3.31.0
  • mingw 8.1.0
  • vscode 1.86.1
  • vscode 插件
    • CMake Tools(提供 CMake 支持)
    • C/C++(提供代码补全和调试支持)
    • Code Runner(可选,用于快速运行程序)

环境配置参考 007-windows 下搭建 Cpp 编译环境

步骤一: Create a project

创建一个 cpp 项目

步骤二: Configure a project

2.1 创建 CMakeLists.txt

  1. CMake: Quick Start
  2. 输入项目名
  3. 选择创建 c++项目
  4. 选择 CTest 作为测试支持, 也可以选择 CPack 来打包
  5. 创建可执行文件 Executable 或者 Library

2.2 创建 CMakePresets.json

创建 CMakePresets.json 预设配置

  1. 创建新的预设
  2. 从编译器创建, 选择本地编译器 MinGW
  3. 命名预设

或者选择已有预设配置

注: 此时应该生成了 CMakeLists.txt 和 CMakePresets.json 文件

2.3 两者的关系

  1. CMakeLists.txt 是核心,cmakepresets.json 是辅助配置文件:

    • CMakeLists.txt 决定了项目如何构建,包含了所有的构建规则。
    • cmakepresets.json 定义了如何调用 CMake 来处理这些规则。
  2. cmakepresets.json 简化了构建配置:

    • 开发者无需记住或输入复杂的命令行参数,可以直接选择预设。
    • 预设适用于不同的开发环境、构建目标或用户配置。
  3. 工作流程:

    • CMake 读取 cmakepresets.json 来确定配置选项和生成器。
    • 根据选定的预设调用 CMakeLists.txt,生成相应的构建系统。
  4. 兼容性:

    • cmakepresets.json 在 CMake 3.19 引入,推荐使用 CMake 3.21 或更高版本以获得更好的支持。
    • 如果没有 cmakepresets.json,则可以通过命令行参数直接配置 CMake。

步骤三: Build a project

3.1 选择 CMake Preset

  1. 打开 VSCode 的命令面板, 输入 CMake: Select Configure Preset。
  2. 选择 default(或你定义的其他 preset 名称)。

3.2 配置项目

  1. 打开命令面板, 输入 CMake: Configure。
  2. VSCode 会自动运行 cmake,并根据你的 CMakePresets.json 配置项目。

注: 生成 build 文件夹

3.3 构建项目

  1. 打开命令面板, 输入 CMake: Build。
  2. VSCode 会调用 CMake,使用 MinGW 编译你的项目。

注: 构建成功显示 Build complete

步骤四: Run a project

  1. 打开命令面板, 输入 CMake: Run。
  2. VSCode 会调用 CMake,使用 MinGW 编译你的项目。

注: 运行成功会在 build 目录下生成可执行文件

步骤五: 调试

  1. 确保你的项目生成了可执行文件(通常位于 build 文件夹)。
  2. 运行 -> 启动调试 -> 选择调试器 g++ -> 生成 ./vscode/tasks.json
  3. 点击创建 launch.json
  4. 配置 launch.json(用于调试): 打开 .vscode/launch.json,并添加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/your_program_name.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:/Software/mingw/mingw64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
  1. 启动调试:
    • 在调试面板点击“启动调试”(绿色三角形)。

补充:CMake 工具栏
在 VSCode 的状态栏下方,你可以看到由 CMake Tools 扩展提供的工具栏:

  • [Select Kit]:选择编译器(一般选择 MinGW)。
  • [Build]:一键构建。
  • [Debug]:直接运行调试。