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

如何在VS Code中基于Makefile用gcc/gdb构建调试多源文件EXE

在VS Code中结合现有Makefile实现GDB调试的配置方案

1. 配置tasks.json(构建任务)

你已经有现成的Makefile,直接调用make命令完成构建是最省心的方式,不用手动编写多文件编译指令。在项目的.vscode/tasks.json文件中添加以下配置:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "mingw32-make", // MinGW环境通常用这个命令,若PATH没配置就写完整路径:"C:\\Tools\\mingw6.3\\bin\\mingw32-make.exe"
            "args": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": ["$gcc"],
            "detail": "调用现有Makefile构建项目"
        },
        {
            "label": "clean",
            "type": "shell",
            "command": "mingw32-make clean",
            "args": [],
            "detail": "清理所有构建产物"
        }
    ]
}

2. 配置launch.json(调试任务)

接下来配置调试启动文件.vscode/launch.json,让VS Code调用GDB调试生成的test.exe:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "GDB调试test.exe",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/test.exe",
            "args": [],
            "stopAtEntry": false, // 设为true会在程序入口处自动暂停
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false, // 设为true会弹出独立的控制台窗口
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\Tools\\mingw6.3\\bin\\gdb.exe", // 填写你的GDB完整路径
            "preLaunchTask": "build", // 调试前自动执行build任务,确保程序是最新版本
            "setupCommands": [
                {
                    "description": "开启GDB美观打印功能",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

3. 补充说明

  • 你的Makefile中LDFLAGS已经包含-g参数,这是生成调试信息的必要条件,务必保留,否则GDB无法正常调试。
  • 若需要清理构建产物,可以给Makefile添加clean目标:
clean:
    del /Q test.exe *.obj proj\src\*.obj output.map
  • 如果执行命令时提示找不到程序,检查C:\Tools\mingw6.3\bin是否已添加到系统PATH中,或者直接在配置里写工具的完整路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:48:25