CMake学习--Window下VSCode 中 CMake C++ 代码调试操作方法

目录

一、背景知识

在软件开发过程中,调试是不可或缺的一环。它帮助开发者定位代码中的错误,理解程序运行时的状态,从而提高代码质量和开发效率。CMake 是一个跨平台的构建工具,可以生成不同平台下的构建文件,如 Makefile 或 Visual Studio 解决方案等。VSCode(Visual Studio Code)是一款功能强大的轻量级代码编辑器,支持多种编程语言,具有丰富的扩展功能。结合 CMake 和 VSCode 进行 C++ 代码调试,可以充分利用两者的优点,打造高效的开发环境。

二、使用方法

(一)安装扩展

  1. 打开 VSCode。

  2. 点击左侧的扩展视图(扩展图标是一个四四方方的拼图块)。

  3. 在搜索框中输入"C/C++"。在搜索结果中找到由微软发布的"C/C++"扩展,点击"安装"按钮。

  4. 安装CMake

(二)创建 CMake 项目

  1. 新建一个文件夹CMake_DEBUG作为项目根目录。
  2. 新建build目录,用于构建和编译。
  3. 新建main.cpp
  4. 新建 CMakeLists.txt 文件。

(三)编写代码

main.cpp

cpp 复制代码
#include <iostream>



int main() {

    std::cout << "Hello, World!" << std::endl;
    return 0;
}

(四)配置 CMakeLists.txt

cmake 复制代码
cmake_minimum_required(VERSION 3.10)

project(HelloWorld)



set(CMAKE_CXX_STANDARD 11)



add_executable(${PROJECT_NAME} main.cpp)

代码目录如下:

此时利用cmake指令,应该能正常编译成功。打开vscode终端,

shell 复制代码
cd build



cmake ..



cmake --build .

(五)生成构建文件

现在只能编译成功,还是不能调试程序。怎样调试呢?

点击左边栏调试按钮,创建launch.json,选择c/c++:(Windows)启动。

系统默认的launch.json如下:

修改后的launch.json如下:

json 复制代码
{

    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(Windows) 启动",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/Debug/HelloWorld.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "console": "externalTerminal"
            "miDebuggerPath": "D:\\DevKits\\Qt\\Tools\\mingw810_64\\bin\\gdb.exe",
        }
    ]
}

需要修改programmiDebuggerPath修改为自己的代码路径,其他默认即可。

(六)开始调试

跟visual studio 2022调试环境基本一样,断点,快捷键,F5,F10,F11等等。

三、总结

通过以上步骤,我们成功地在Windows环境下 VSCode 中配置了 CMake C++ 项目,并实现了代码调试。这种开发方式充分利用了 CMake 的构建能力和 VSCode 的便捷性,为 C++ 开发者提供了一个高效、灵活的开发环境。在实际开发中,可以根据项目需求进一步扩展和优化配置,以满足更复杂的开发场景。

相关推荐
何事误红尘4 分钟前
全志A40i学习笔记():开发资料、启用串口
学习
for_ever_love__20 分钟前
python基础语法学习: 异常的传递性
开发语言·python·学习
PC2005-cloud1 小时前
DeepSeek Harness 创建 skill 指南:结构、安装、使用
笔记·学习
依然鸣1 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
YM52e1 小时前
分页查询的基石:ArkTS 为鸿蒙商品列表设计 LIMIT/OFFSET 的表
android·学习·华为·harmonyos
math_hongfan1 小时前
主从嵌套层次分明:ArkUI 订单卡片内嵌明细的鸿蒙界面
学习·华为·harmonyos
库玛西3 小时前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试
liulilittle3 小时前
无锁并发容器的设计与实现原理
开发语言·c++·set·map·并发·无锁·lock-free
还不秃顶的计科生3 小时前
具身智能论文学习8:Octo: An Open-Source Generalist Robot Policy
人工智能·深度学习·学习·机器学习·语言模型·vla·vlm
woshihuanglaoshi4 小时前
事务加持防超卖:ArkTS 在鸿蒙里玩转 TRANSACTION 出入库
学习·华为·harmonyos