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++ 开发者提供了一个高效、灵活的开发环境。在实际开发中,可以根据项目需求进一步扩展和优化配置,以满足更复杂的开发场景。

相关推荐
水云桐程序员7 小时前
C++的主要应用场景
c++·学习方法
wuxinyan1238 小时前
大模型学习之路03:提示工程从入门到精通(第三篇)
人工智能·python·学习
叼烟扛炮8 小时前
C++第一讲:C++ 入门基础
开发语言·c++·函数重载·引用·内联函数·nullptr
十安_数学好题速析8 小时前
【多选】曲线方程:四步避坑判断曲线类型
笔记·学习·高考
zh_xuan8 小时前
使用libcurl调用http接口
c++·github·libcurl
zh路西法8 小时前
【RDKX5多摄像头模型推理】USB带宽限制与ROS2话题零拷贝转发
linux·c++·python·深度学习
千寻girling9 小时前
五一劳动节快乐 [特殊字符][特殊字符][特殊字符]
java·c++·git·python·学习·github·php
汉克老师9 小时前
GESP2025年3月认证C++五级( 第一部分选择题(9-15))
c++·算法·高精度计算·二分算法·gesp5级·gesp五级
波特率1152009 小时前
git指令学习
git·学习
eLIN TECE10 小时前
Golang 构建学习
开发语言·学习·golang