利用cmake tool进行cmake工程的调试与运行

2024-07-30 17:15:33 浏览数 (2)

针对于简单的C 小程序,可以使用task.json和launch.json来配置编译和调试。但是对于生成lib、dll等稍复杂的项目,虽然可以借助task.json配置不同的task来实现,但使用g 中rcs等归档命令还是有些晦涩难懂,所以单纯的使用task.json文件来生成lib、dll等复杂项目并非明智之举。同时,目前大型项目多是采用cmake组织工程,因此了解在VS Code如何运行和调试cmake组织的项目,就显得尤为重要。

1. 环境准备

本文是VS Code C/C 环境搭建系列文章的第二篇(第一篇文章为:弃用VS转向VS Code),默认VS Code已经成功安装,并且C/C 相关扩展也已经安装成功。而在VS Code中运行和调试cmake项目,需要安装cmake扩展,cmake相关的扩展主推CMake和CMake Tools。其安装方法参照汉化插件或C/C 扩展的安装方法即可。

其中CMake插件更侧重于cmake脚本(如CMakeLists.txt文件)的编写体验,而CMake Tools插件则是一个功能更为全面的CMake集成开发环境(IDE)插件,它涵盖了脚本编写、项目的配置、构建、调试等多个方面。

2. 基于cmake tool运行和调试

在上一章节中,分别测试了如何使用task.json和launch.json来运行和调试单文件项目、多文件项目和多个文件夹项目。本节将使用cmake插件来实现其运行和调试。

无论是单文件、多文件、多文件夹项目,乃至是生成lib、dll库以及引用第三方库的项目,只要其CMakeLists.txt文件配置正确,那么对于VS Code来说,其运行和调试都是一样的,因此本节以同时生成库文件和其测试程序exe为例,演示如何使用cmake插件来实现其运行和调试。

项目结构为如下:

其中add文件夹下用于生成库文件ADD.dll和ADD.lib,src文件夹下用于生成测试ADD库文件的可执行程序,因此,本项目存在三个CMakeLists.txt文件,分别是add文件夹下的CMakeLists.txt、src文件夹下的CMakeLists.txt以及根目录下的CMakeLists.txt。

其运行和调试是基于cmake的,首先要进行cmake配置,操作方法为:快捷键(Ctrl shift P或F1)打开命令输入窗口,输入"cmake:configure",选择cmake:configure,如下图所示:

此时,在VS Code的底部状态栏会显示如下的CMake相关设置按钮:

图中已经标注各个按钮的作用,再次阐释如下:

  • build type:cmake支持不同的编译类型:debug、release、relwithdebinfo、minsizerel,默认为debug,可以通过点击该按钮进行切换。
  • 编译器:cmake支持不同的编译器,其会检索计算机中已经安装的编译器,可以通过该按钮切换不同的编译器。
  • 生成按钮:单击该按钮会执行对应项目生成。
  • 项目名称:此处会列举当前CMakeLists.txt文件配置所有项目的名称,含All Build,如果配置了install,此处也会显示。可以通过点击该按钮切换不同的项目。默认为all,即生成所有项目。本例中共生成3个
  • 调试:单击调试按钮,便启动调试,如果项目中存在断点,会在断点处暂停,否则会直接运行。
  • 运行:单击运行按钮,开始程序运行。
  • 运行/调试项目:当前项目中存在main函数的项目,也即支持调试/运行的项目,支持不同项目的切换

3. 总结

本文介绍了如何使用cmake tool插件来实现cmake项目的运行和调试,其配置和使用相对简单,但是其功能却非常强大,可以满足大部分cmake项目的运行和调试需求。

0 人点赞