前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用cmake tool进行cmake工程的调试与运行

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

作者头像
程序员的园
发布2024-07-30 17:15:33
1850
发布2024-07-30 17:15:33
举报
文章被收录于专栏:程序员的园——原创文章

针对于简单的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项目的运行和调试需求。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档