在VSCode中调试C++/CMake项目的经典配置

VSCode如何调试C++/CMake项目

本文以最典型的开源C++项目结构为例,即:创建build目录并进入、cmake ..生成编译配置、make创建二进制文件的 的流程。以下将介绍如何使VSCode自动化运行这些流程。

安装编译工具链

首先需要安装C++的编译工具链。

  • Linux下就是gcc、make、cmake这些。
  • Windows下稍微复杂些,如果用微软那套的话可以搜索msvc的配置,这里就不展开了;如果用符合GNU的,可以使用MinGW+CMake的组合。

这里简单介绍ubuntu下的编译工具链的配置:

sudo apt install build-essential cmake cmake-curses-gui

一条语句搞定。

其中cmake-curses-gui是ccmake组件

至于遇到的什么特定版本的gcc啊、内核升降级啊,以及CMakeLists.txt如何编写,不在本文讨论之列。

如果你没有sudo权限,建议联系管理员运行以上命令,并安装VSCode。否则自己本地编译安装的话,会折腾死人的(亲历)

配置VSCode

这里假定你的VSCode已经安装完毕,没有的话建议去官网下载安装,不要使用ubuntu商店。

  1. 首先,在VSCode中安装以下扩展:C/C++、CMake、CMake Tools。

  2. 然后,在调试页,点击"create a launch.json file",在弹出的命令面板中随便选一个,打开生成的launch配置文件(或者手动在项目目录下创建.vscode文件夹,以及.vscode/launch.json文件),并对其进行修改,改为以下内容:

    // .vscode/launch.json
    {
         
        "version": "0.2.0",
        "configurations": [
        {
         
            "name": "CMake: Compile and Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/要调试的可执行程序名称(手动修改)",
            
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VS Code调试C代码可以使用其内嵌的GDB图形化界面调试功能,这对于C/C++开发者来说非常方便。你可以按照以下步骤进行配置: 1. 确保你已经安装了GDB调试器。你可以在终端运行`gdb --version`来检查是否已安装。 2. 在VS Code安装C/C++插件,该插件提供了调试所需的功能。 3. 配置`.vscode/launch.json`文件,该文件用于配置调试器。你可以通过按下`Ctrl + Shift + P`打开命令面板,然后输入`C/Cpp: Generate Debug Configuration`来自动生成该文件。 4. 在生成的`launch.json`文件,确保以下配置项正确设置: - `"name"`: 调试配置的名称。 - `"type"`: 调试器的类型,对于C/C++代码,设置为`"cppdbg"`。 - `"request"`: 设置为`"launch"`以启动调试器。 - `"program"`: 设置为要调试的可执行文件的路径。 - `"cwd"`: 设置为工作目录的路径。 - `"MIMode"`: 设置为`"gdb"`以使用GDB作为调试器。 - `"miDebuggerPath"`: 设置为GDB可执行文件的路径。 5. 在代码设置断点,你可以使用鼠标左键单击行号来设置断点,或者在代码行上右键单击并选择“添加断点”。 6. 按下F5或选择菜单栏的“调试”>“开始调试”来启动调试会话。 7. 在调试过程,你可以使用调试面板的各种功能,例如单步执行、查看变量的值和堆栈跟踪等。 通过以上步骤,你可以在VS Code成功调试C代码。如果你需要更详细的指导,可以参考引用提到的文章《Linux下使用VS Code CMake调试C程序》。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [解决在VScode调试C++代码断点无效、断点错位的问题](https://blog.csdn.net/hypc9709/article/details/125906413)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [VSCode调试C/C++项目](https://blog.csdn.net/qq_45488242/article/details/128414756)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值