1 概述
- 本文基于前文环境
本节目标:基于VSCode, 使用CMake Tools插件命令调试程序
- 通过前面可以得知,CMake Tools的其他常用命令已经介绍过了,下面介绍 CMake:debug命令
2 准备工作
2.1 目录结构
- 创建一个名为main.cc的文件,位于src文件夹下,而src文件夹与CMakeLists.txt处于同级目录。
.
│ CMakeLists.txt
│
└─src
main.cc
使用VSCode打开CMakeLists.txt所在文件夹。方法:VScode > File > Open Folder... 或者 使用资源管理器切换到CMakeLists.txt所在目录,鼠标右键选择 通过VSCode打开。
2.2 源码文件
- 下面将准备一份 C++ 代码,写入 main.cc 文件中,代码用于输出 hello cmake,源码如下:
#include <iostream>
/// 程序入口
int main(int argc, char* argv[], char* env[])
{
const std::string str_hello{"hello cmake"};
std::cout << "\n" << str_hello.c_str() << "\n";
return 0;
}
2.3 CMake脚本文件
- 因为演示的是可执行程序,所以使用的是add_executable。
- 打开CMakeLists.txt文件,编写如下脚本
# 指定CMake脚本解析的最低版本,
cmake_minimum_required(VERSION 3.18)
# 指定项目
project(HelloCMake)
# 指创建src_files变量,用于管理代码文件时使用
set( src_files
${CMAKE_CURRENT_SOURCE_DIR}/src/main.cc
)
# 用于生成可执行程序, 第一个参数是项目名称, 第二个参数是项目文件
add_executable(${PROJECT_NAME} ${src_files})
2.3.1 PROJECT_NAME
- PROJECT_NAME这是CMake内置的变量,对应的值就是project中的值,这里也就是 HelloCMake。
2.3.2 src_files
- src_files为自定义变量,如果需要使用变量,则需要使用{}将其包裹。
准备工作结束
3 使用CMake:Debug调试程序
- 顺序:选择构建套件 > 选择配置管理(Debug | Release) > 构建脚本 > 编译源码 > 调试程序
- VSCode打开命令面板快捷键:ctrl+shift+p
- CMake Tools的命令基于命令面板
3.1 选择构建套件
- 如果为首次执行cmake脚本,选择构建套件是必须的。
- 后期增量开发,可不用再次选择。
- 命令如下:
>CMake:Select a kit
- 也可通过状态栏切换,手动切换
3.2 选择配置管理
- 命令如下:
CMake: Select a variant
-
也可通过状态栏切换
-
因为本节演示的为调试,所以选择为Debug
-
如果时发布软件,请选择 release
3.3 构建脚本
- 命令如下:
>CMake:Configure
3.5 编译源码
命令如下:
CMake:build
- 查看输出,如果输出没有语法错误,编译通过,则可调试, 笔者演示代码编译结果
可见,编译通过, 生成目标可执行文件 HelloCMake.exe
- 也可通过状态点击编译
3.6 调试程序
- 调试前,咱们先下断点, 回到main.cc文件第6行下断点,下断点方法和Vs2019下断点方法一致,鼠标左键点击行号前即可。
3.6.1 设置启动项目
- 命令如下
CMake: Set a build Target
- 选择: HelloCMake
- 亦可通过UI选择
3.6.2 调试
- 命令如下:
cmake:Debug
启动调试快捷键为: ctrl+F5
- 默认调试快捷键与VS系列IDE的快捷键一致
3.7 调试中断
- 可见程序已经在断点处暂停
3.8 程序结果
- F5 继续运行程序,查看已经输出hello cmake了。
至此,已经可以使用VSCode + CMake编写代码、与调试了。
5 题外话
- 如果较为熟悉使用VS IDE编码与调试,也可打开输出目录Build下的HelloCMake.sln解决方案,执行编码与调试。