1. 安装软件

vscode MinGW
vscode插件安装

2. 环境变量设置

image.png

3. 配置

image.png

3.1. ==task.json==

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "D:\\AppGallery\\Software\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "*.cpp",  // 编译所有 .cpp 文件
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": ["$gcc"],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}
{
"version": "2.0.0", // 指定任务配置文件的版本,2.0.0 是当前标准版本
"tasks": [
{
"type": "cppbuild", // 任务类型,标识这是一个 C++ 构建任务
"label": "C/C++: g++.exe 生成活动文件", // 任务的显示名称,在任务选择器中可见
"command": "D:\\AppGallery\\Software\\mingw64\\bin\\g++.exe", // 指定要执行的编译器路径(修改为新的 MinGW64 路径)
"args": [ // 传递给编译器的命令行参数
"-fdiagnostics-color=always", // 启用彩色错误输出
"-g", // 生成调试信息
"*.cpp", // 编译当前目录下所有 .cpp 文件
"-o", // 指定输出文件
"${fileDirname}\\${fileBasenameNoExtension}.exe", // 输出可执行文件的路径和名称
"-lwinmm" // 链接 Windows 多媒体库(用于音频、计时器等功能)
],
"options": { // 任务执行的选项
"cwd": "${fileDirname}" // 设置工作目录为当前文件所在目录
},
"problemMatcher": [ // 问题匹配器,用于解析编译器输出
"$gcc" // 使用内置的 GCC 问题匹配器
],
"group": { // 任务分组信息
"kind": "build", // 将任务归类为构建任务
"isDefault": true // 设为默认构
建任务,可通过快捷键运行
}
}
]
}

3.2. ==launch.json==

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe",//gdb路径
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        },
        {
            "name": "C/C++: g++.exe 构建和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\AppGallery\\Software\\MinGW\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件"
        }
    ]
}
{
"version": "0.2.0", // 指定调试配置文件的版本
"configurations": [
{
"name": "(gdb) 启动", // 调试配置的显示名称
"type": "cppdbg", // 调试器类型,cppdbg 是 C/C++ 扩展的调试器
"request": "launch", // 请求类型,launch 表示启动程序进行调试
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 要调试的可执行文件路径
"args": [], // 传递给程序的命令行参数(此处为空)
"stopAtEntry": false, // 是否在程序入口点停止(false 表示不暂停)
"cwd": "${fileDirname}", // 程序运行时的当前工作目录
"environment": [], // 程序运行时的环境变量(此处为空)
"externalConsole": true, // 是否在外部控制台窗口运行程序
"MIMode": "gdb", // 调试器模式,使用 GDB
"miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe", // GDB 调试器的路径
"setupCommands": [ // 调试器启动时执行的设置命令
{
"description": "为 gdb 启用整齐打印", // 命令描述
"text": "-enable-pretty-printing", // 启用 GDB 的格式化输出
"ignoreFailures": true // 如果命令失败是否忽略
},
{
"description": "将反汇编风格设置为 Intel", // 命令描述
"text": "-gdb-set disassembly-flavor intel", // 设置反汇编为 Intel 风格(而非 AT&T 风格)
"ignoreFailures": true // 如果命令失败是否忽略
}
]
},
{
"name": "C/C++: g++.exe 构建和调试活动文件", // 第二个调试配置的名称
"type": "cppdbg", // 调试器类型
"request": "launch", // 请求类型
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 要调试的可执行文件路径
"args": [], // 传递给程序的命令行参数(此处为空)
"stopAtEntry": false, // 是否在程序入口点停止
"cwd": "${fileDirname}", // 程序运行时的当前工作目录
"environment": [], // 程序运行时的环境变量(此处为空)
"externalConsole": true, // 是否在外部控制台窗口运行程序
"MIMode": "gdb", // 调试器模式,使用 GDB
"miDebuggerPath": "D:\\AppGallery\\Software\\MinGW\\bin\\gdb.exe", // GDB 调试器的路径(更新为新的路径)
"setupCommands": [ // 调试器启动时执行的设置命令
{
"description": "为 gdb 启用整齐打印", // 命令描述
"text": "-enable-pretty-printing", // 启用 GDB 的格式化输出
"ignoreFailures": true // 如果命令失败是否忽略
},
{
"description": "将反汇编风格设置为 Intel", // 命令描述
"text": "-gdb-set disassembly-flavor intel", // 设置反汇编为 Intel 风格
"ignoreFailures": true // 如果命令失败是否忽略
}
],
"preLaunchTask": "C/C++: g++.exe 生成活动文件" // 调试前执行的任务(会先编译代码)
}
]
}