vscode并不是IDE,他只是一个多方集成的编辑器,它好不好用,能不能用, 完全取决的我们自已的DIY。
无论是更新mingw还是第一次使用,都可以参考一下
我下面以C++版为例:
我们需要准备好前菜:
1.安装编译器
C++是编译型语言,首先你必须去官网,下载一款编译器,c++的编译器也有很多,这里以mingw为例,如果你是windows,WinLibs 版本,下载官网这里🔗https://winlibs.com/
如果你是第一次下载:下载好编译器,你安装到哪里都无所谓,但是我们需要找到他的bin路径(这里面就是具体能够编译的编译器和调试器....一些可执行程序,后面给我们程序编译的工具都在这个路径下),然后将bin路径配置为环境变量。
如果你是更新版本 :配置的时候,需要注意,若你以前已经安装了一些旧版本的,并且已经配置了旧版本所在路径的环境变量,那么这个新版本路径,你需要上移,优先使用新版本的,不然后面,你以为配置了新版本,并且也添加了环境变量,最后,可能导致还是用的旧版本的gcc,最后导致版本不一致,比较落后,编译不过去。

比如,我这里就把新版本的上移到最上面了,下载还有一个以前安装的编译器。
2.ok,下面我们配置一下主要的两个文件,可以参考一下
一个是launch.json:
这个文件主要是一些关于debug的内容,具体含义,标注了,可以根据自已的喜好配置
bash
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
// 这个文件,主要用来调试的。
"version": "2.0",
"configurations": [
// {
// "type": "node",
// "request": "launch",
// "name": "Launch Program",
// "skipFiles": [
// "<node_internals>/**"
// ],
// "program": "${file}"
// },
{
"name": "Template", //运行和调试任务的名称,可自定义
"type": "cppdbg", //配置类型,默认即可
"request": "launch", //launch模式允许我们打断点进行调试,默认即可
"program": "${fileDirname}/${fileBasenameNoExtension}.exe", //(常用)将要执行调试的程序的路径
"args": [
"/C",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"&",
"pause"
], //(常用)程序(main函数)的入口参数
"stopAtEntry": false, //在入口处暂停,选true相当于在入口处增加断点
"cwd": "${workspaceFolder}", //程序调试时的工作目录
"environment": [], //添加到程序的环境变量
"externalConsole": false, //true在调试时会开启系统控制台窗口,false会使用vscode自带的调试控制台
"MIMode": "gdb", //使用gdb进行调试
"setupCommands": [ //用来设置gdb的参数,默认即可
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "task g++", //(常用)运行和调试前要执行的task(编译)任务,任务名要和task.json里的"label"对应
"miDebuggerPath": "E:/gcc-15.2.0-mingw/winlibs-x86_64-posix-seh-gcc-15.2.0-mingw-w64msvcrt-13.0.0-r5/mingw64/bin/gdb.exe" //debug调试工具的路径,这里使用gdb所在的路径
}
],
}
注意:要保证preLaunchTask任务名要和task.json里的"label"对应
另一个是task.json,主要是编译的一些选项:
bash
//tasks.json是辅助程序编译的模块,执行类似于在命令行输入"gcc hello.c -o hello"命令的操作
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild", //任务类型(如果是shell,下面的command就相当于执行shell命令)
"label": "task g++", //任务的名称,可以修改,但一定要和launch.json的"preLaunchTask"项保持一致
"command": "E:/gcc-15.2.0-mingw/winlibs-x86_64-posix-seh-gcc-15.2.0-mingw-w64msvcrt-13.0.0-r5/mingw64/bin/g++.exe", //编译器的路径
"args": [ //(常用)编译时使用的参数,和命令行下相同
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-fexec-charset=utf-8", // 编码规则
"-std=c++17"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "E:/gcc-15.2.0-mingw/winlibs-x86_64-posix-seh-gcc-15.2.0-mingw-w64msvcrt-13.0.0-r5/mingw64/bin/g++.exe" //一些描述性信息
},
]
}
然后我们在编译的时候,就可以选择我们已经配置好的这个Template(launch中起的)的运行和调试了:

全局,永久有效
ok,这两个文件配置好了,就可以选择直接编译或者调试了。但是这是我们本地的,也就是局部的,只能在这个工作区选择,换个工作区就找不到了。也就是vscode会自动帮我们在当前工作区创建新的配置文件。
因此,我们需要配置全局的,也就是把刚刚那两个文件提升为全局。
配置文件的内容基本一致,只是添加罢了。
修改为全局主要有两个文件:
第一步:配置全局 任务 (User Tasks)
-
在 VS Code 中按下
Ctrl + Shift + P。 -
输入并选择
Tasks: Open User Tasks。
根据我们刚刚的配置,task.json:
bash
// 全局的task.json
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "task g++", // 保持你的原始 label
"command": "E:/gcc-15.2.0-mingw/winlibs-x86_64-posix-seh-gcc-15.2.0-mingw-w64msvcrt-13.0.0-r5/mingw64/bin/g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-fexec-charset=utf-8", // 编码规则,看着配置
"-std=c++17"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "E:/gcc-15.2.0-mingw/winlibs-x86_64-posix-seh-gcc-15.2.0-mingw-w64msvcrt-13.0.0-r5/mingw64/bin/g++.exe"
}
]
}
第二步:配置全局 启动设置 (User Settings)
-
在 VS Code 中按下
Ctrl + Shift + P。 -
输入并选择
Open User Settings (JSON)。 -
在大括号
{}中添加(或修改)以下launch块:
bash
{
//之前的设置(保留) ---
"workbench.startupEditor": "none",
"explorer.confirmDelete": false,
"cmake.showOptionsMovedNotification": false,
"debug.onTaskErrors": "abort",
"cmake.configureOnOpen": true,
"workbench.iconTheme": "vscode-icons",
"remote.SSH.remotePlatform": {
"60.204.222.188": "linux",
"47.108.113.176": "linux",
"192.168.174.128": "linux"
},
"backgroundCover.imagePath": "f:\\图片\\屏幕截图 2025-08-23 005831.png",
"files.autoSave": "afterDelay",
"workbench.colorTheme": "Monokai",
"workbench.commandPalette.experimental.suggestCommands": true,
"editor.fontSize": 16,
"git.openRepositoryInParentFolders": "never",
"powermode.enabled": true,
"terminal.integrated.environmentChangesRelaunch": false,
// 新增: 全局 C++ 调试与编译配置 ---
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "golbal_Template", // 全局的配置
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false, // 弹出独立黑窗口运行
"MIMode": "gdb",
"miDebuggerPath": "E:/gcc-15.2.0-mingw/winlibs-x86_64-posix-seh-gcc-15.2.0-mingw-w64msvcrt-13.0.0-r5/mingw64/bin/gdb.exe",
"preLaunchTask": "task g++", // 运行前自动寻找全局 User Tasks 中的编译任务
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
},
// 新增:C++ 全局插件优化(防止红波浪线) ---
// 默认编译器路径,让 VS Code 的提示功能锁定你的 GCC 15.2.0
"C_Cpp.default.compilerPath": "E:/gcc-15.2.0-mingw/winlibs-x86_64-posix-seh-gcc-15.2.0-mingw-w64msvcrt-13.0.0-r5/mingw64/bin/g++.exe",
// 强制智能提示引擎保持最新状态
"C_Cpp.intelliSenseEngine": "default",
// 设置默认 C++ 标准,避免 C++17 特性报错
"C_Cpp.default.cppStandard": "c++17"
}
最后,在任何工作区编译的时候,都可以找到全局的名字叫做golbal_Template,然后选择它!

最后,再说一嘴,这样的配置不能测试性能测试,我们可以配置一些局部的性能测试的选项,或者直接命令行运行可执行程序。我们这样配置,会带上很多调试信息,因此不是万能的,不过平时学习足够了。