Visual Studio Code运行 C/C++ 配置
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"usingnamespace std;intmain(){ cout <<"Hello World From Visual Studio Code."<< endl;system("pause");return0;}请注意,在第8行额外添加了system("pause");代码,功能是确保程序编译并执行后不会立刻退出,否则运行结果会一闪而过。
按键盘:F5开始执行代码。

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