You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode配置launch.json/tasks.json实现CPP转EXE及调试报错解决

问题解决步骤

先明确:VSCode不是编译器

VSCode只是一款代码编辑器,本身不具备编译C代码的能力,必须搭配C/C编译器(比如你MSYS64里的g++)才能将.cpp源文件编译成可执行的.exe程序。你的报错就是因为直接用gdb调试未编译的源文件导致的。


1. 修改tasks.json(编译任务配置)

原配置错误调用了gdb调试器来执行编译,需改用g++编译器,同时补全编译参数:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Compile C++",
            "type": "shell",
            "command": "C:/msys64/ucrt64/bin/g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-Wall",
                "-g",
                "${workspaceFolder}/test.cpp",
                "-o",
                "${workspaceFolder}/test.exe"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "reveal": "always",
                "panel": "new"
            },
            "problemMatcher": ["$gcc"]
        }
    ]
}

修改说明:

  • 把command改为g++.exe(编译器而非调试器)
  • 补全-o后的输出路径,明确生成的可执行文件
  • 设置group为build并设为默认,方便快速调用编译任务
  • 添加problemMatcher用于识别编译错误

2. 修改launch.json(调试配置)

原配置的program指向了未编译的源文件,需改为编译后的exe,同时关联编译任务确保调试前自动编译:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/test.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/msys64/ucrt64/bin/gdb.exe",
            "preLaunchTask": "Compile C++",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

修改说明:

  • 将program路径改为编译后的test.exe
  • 添加preLaunchTask,值对应tasks.json里的label,确保调试前先完成编译

3. 验证操作

  1. 保存两个配置文件
  2. 打开test.cpp,按下F5启动调试
  3. VSCode会先执行编译任务生成test.exe,再自动调用gdb调试该可执行文件,报错即可解决

内容的提问来源于stack exchange,提问作者Animoise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:25:18