Visual Studio Code运行 C/C++ 配置
安装C++插件

如上图,请安装:
- C/C++
- C/C++ Extension Pack
两个插件。 其中C/C++ Extension Pack包含图中的:C/C++ Themes,CMake,CMake Tools 3个插件。
如果没有安装完全,请手动搜索插件名称进行安装。
配置C++插件
前提:下载mingw64并配置环境变量,请确保在系统内已经配置完成了g++编译器。
需要配置三个json格式文件。如下:
① tasks.json : 编译器构建 配置文件 ;
② launch.json : 调试器设置 配置文件 ;
③ c_cpp_properties.json : 编译器路径和智能代码提示 配置文件 ;
在Visual Studio Code中,对于 C++ 这类编译型语言,“构建”(编译代码)和 “调试”(运行并检查程序)是两个独立但又需要协作的过程。tasks.json 和 launch.json 就是分别管理这两个过程的配置文件。
通过VSCode,打开代码的工程文件夹,如果不存在请创建一个文件夹,用以后续存放代码文件(不要带上中文)
比如,我的代码全部存放在:D:\C++Codes\demo_test



在代码文件夹内,新建文件夹,名称:.vscode
在.vscode内,创建3个文件,并复制如下内容:
文件1:c_cpp_properties.json
c_cpp_properties.json 是 Visual Studio Code (VSCode) 中用于支持 C/C++ 编程的一个重要配置文件,由微软官方提供的 C/C++ 扩展生成并维护。其主要作用包括:
- 配置 IntelliSense:通过设置编译器路径、头文件搜索路径等信息,使得 VSCode 能够提供高效的代码补全、代码跳转等功能。
- 配置编译器:指定编译器类型和版本,确保代码分析和调试信息与实际编译器一致。
- 配置调试和运行环境:为不同的操作系统和环境(如 Windows、Linux、macOS)定制不同的编译和运行配置。

或者按 Ctrl + Shift + P ,选中C/C++:编辑配置(UI),也会自动会生成.vscode文件夹和包含c_cpp_properties.json文件


c_cpp_properties.json
内容:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "D:\\ProgramData\\mingw64\\bin\\g++.exe", /*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "${default}"
}
],
"version": 4
}
关键字段详解(./vscode/c_cpp_properties.json)
其中,configurations 是一个配置数组,可以为不同的平台和环境定义多个配置。name 是配置的名称,includePath 列出包含路径,defines 定义宏,compilerPath 指定编译器路径,cStandard 和 cppStandard 设定语言标准,intelliSenseMode 指定 IntelliSense 的工作模式。合理配置此文件有助于提高开发效率和代码质量。
请修改compilerPath对应的路径,修改为自己系统中安装mingw中g++程序的位置
如:
- 我的mingw安装在:
D:\ProgramData\mingw64 - 所以,我应该填入的配置内容是:
D:\\ProgramData\\mingw64\\bin\\g++.exe
注意,所有的路径符号均为:\\。
文件2:launch.json (或者点击上方工具栏中的添加配置,也会生成launch.json)。
该文件告诉 VS Code 的调试器(Debugger)如何启动、附加和控制你的程序。

launch.json内容:
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 程序路径必须和 tasks.json 的输出路径完全一致
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:\\ProgramData\\mingw64\\bin\\gdb.exe", /*修改成自己bin目录下的gdb.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "task g++" // 【核心修正】预启动任务的 label 必须和 tasks.json 中的一致
}
]
}
关键字段详解(./vscode/launch.json)
“name”: “g++.exe build and debug active filet” 作用:此调试配置的名称。它会显示在 VS Code 左侧 “运行和调试” 面板的下拉菜单中。
“program”: “${fileDirname}\${fileBasenameNoExtension}.exe” 作用:要启动并调试的程序的完整路径。这个路径必须与 tasks.json 中 -o 参数指定的输出路径完全一致。这是确保“前厅”能拿到“后厨”刚做好的那道菜的关键。
“cwd”: “${workspaceFolder}” 作用:为你正在调试的程序设置工作目录。确保它与构建时的工作目录一致,可以避免很多潜在问题。
“externalConsole”: true 作用:true 表示启动调试时,会弹出一个独立的外部控制台窗口(Windows上是cmd.exe或powershell)来运行你的程序,而不是使用 VS Code 内置的“调试控制台”。
“preLaunchTask”: “Build Calculator Project” 作用:连接“后厨”与“前厅”的桥梁。它告诉调试器:“在启动 program 之前,请先去 tasks.json 文件里找到 label 为 Build Calculator Project 的那个任务,并执行它。” 这确保了你每次调试的都是最新编译的版本。
请修改miDebuggerPath对应的路径,修改为自己系统中安装mingw中gdb.exe程序的位置
如:
- 我的mingw安装在:
D:\\ProgramData\\mingw64 - 所以,我应该填入的配置内容是:
D:\\ProgramData\\mingw64\\bin\\gdb.exe
注意,所有的路径符号均为:\\;2、"preLaunchTask"的内容要与task.json中的"label"内容相同。
文件3:tasks.json (或者点击上方“终端”栏中的“配置任务”,也会生成tasks.json)
该文件定义了 VS Code 如何调用外部工具(如编译器 g++)来执行任务。我们的核心任务就是编译源代码。

tasks.json内容:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "task g++",
"command": "D:\\ProgramData\\mingw64\\bin\\g++.exe", /*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-I",
"D:\\C++Codes\\C++Study", /*修改成自己放c/c++项目的文件夹,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
"-std=c++17"
],
"options": {
"cwd": "D:\\ProgramData\\mingw64\\bin" /*修改成自己bin目录,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
},
"problemMatcher":[
"$gcc"
],
"group": "build",
}
]
}
关键字段详解(.vscode/tasks.json)
“label”: “task g++” 作用:任务的 “名字”,一个人类可读的标签。这个名字非常重要,因为 launch.json 将通过它来调用此任务。
“command”: “D:\ProgramData\mingw64\bin\g++.exe” 作用:要执行的外部命令,这里是你的 g++.exe 编译器的完整路径。
“args”: [ … ] 作用:一个字符串数组,包含了所有传递给 command 的命令行参数。
-g:告诉编译器生成调试信息,这是让 GDB 调试器能够工作的关键。 “
w
o
r
k
s
p
a
c
e
F
o
l
d
e
r
/
m
a
i
n
.
c
p
p
"
,
.
.
.
:核心修改。这里我们明确列出了所有需要一起编译的源文件。
{workspaceFolder}/main.cpp", ...:核心修改。这里我们明确列出了所有需要一起编译的源文件。
workspaceFolder/main.cpp",...:核心修改。这里我们明确列出了所有需要一起编译的源文件。{workspaceFolder} 是 VS Code 的一个变量,代表你当前打开的项目根文件夹。
-o”KaTeX parse error: Expected '}', got 'EOF' at end of input: …ns": { "cwd": "{workspaceFolder}" } 作用:cwd (Current Working Directory) 指定了执行 command 时的工作目录。将其设置为项目根目录是最佳实践,可以确保所有相对路径(如源文件名)都能被正确解析。
“group”: { “isDefault”: true } 作用:将此任务设置为默认的“构建”任务。这样,当你按下 Ctrl+Shift+B(默认的构建快捷键)时,VS Code 会自动运行这个任务。
- 修改文件中的
command的值为,你电脑中g++程序的路径,请参考c_cpp_properties.json文件中的记录 - 填入你写代码文件夹的路径
- 填入
mingw安装的路径,如上所示
注意,所有的路径符号均为:\\
工作流程如何串联
当你按下 F5(开始调试)时,VS Code 内部的完整流程如下:
- launch.json 响应 F5 事件,找到名为 “g++.exe build and debug active file” 的配置。
- 它检查到 “preLaunchTask”: “task g++” 字段。
- 它暂停启动,转而去 tasks.json 中寻找 label 为 “task g++” 的任务。
- 找到后,执行该任务:调用 g++,将 XXX.cpp, … 编译链接成一个XXX.exe 文件,并存放在当前文件夹中。
- 构建任务成功结束后,launch.json 的流程继续。
- 它启动 “program” 字段指定的XXX.exe 程序,并根据配置(如 externalConsole: true)为其提供运行环境。
- GDB 调试器附加到新启动的程序上,调试会话正式开始。
测试环境是否配置成功
在代码文件夹内创建一个新的代码,如:hello_world.cpp
#include "iostream"
using namespace std;
int main()
{
cout << "Hello World From Visual Studio Code." << endl;
system("pause");
return 0;
}
请注意,在第8行额外添加了system("pause");代码,功能是确保程序编译并执行后不会立刻退出,否则运行结果会一闪而过。
按键盘:F5开始执行代码。

如上,成功。
如果黑窗口闪退,请确认是否在return 0;代码前添加:system("pause");这一行代码。
参考:
1.Visual Studio Code 配置
2.VS Code C++ 项目构建与调试配置详解 (tasks.json & launch.json)
1万+

被折叠的 条评论
为什么被折叠?



