持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天, 点击查看活动详情
一、安装VsCode
参看 Visual Studio Code 写代码前的准备 。
二、安装相关扩展
在Extensions view(扩展视图)通过搜索安装 C++ 扩展 (Ctrl+Shift+X).
三、安装 mingw-w64
创建它是为了在 Windows 系统上支持 GCC 编译器,使用 mingw-w64 中的 GDB 调试器来创建在 Windows 上运行的程序。
通过 MSYS2 获得最新版本的 Mingw-w64,它提供了 GCC、Mingw-w64 和其他有用的 c++ 工具和库的最新原生版本。
您可以从 MSYS2 页面下载最新的安装程序,或使用 此链接安装 ,具体教程还可以参考 官方文档 。
完成安装后的界面如下所示
可以根据需要,安装 mingw-w64 GCC
pacman -S mingw-w64-x86_64-gcc
查看安装好的 gcc 版本
安装 Mingw-w64 工具链(
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
)。在MSYS2终端下执行pacman命令。接受默认值以安装工具链组中的所有成员。全部安装按下
Enter
键即可。
将 Mingw-w64 bin 文件夹的路径添加到 Windows 的 path 环境变量中,操作步骤如下:
在Windows搜索栏中,键入
sysdm.cpl
code .
)
.vscode
文件夹下有如下文件:
tasks.json
(build instructions)
launch.json
(debugger settings)
c_cpp_properties.json
(compiler path and IntelliSense settings)
4.2 创建源码文件
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
for (const string& word : msg)
cout << word << " ";
cout << endl;
4.3 编译运行
在 vscode 终端键入g++ .\helloworld.cpp
此时将生成 a.exe
在 vscode 终端键入.\a.exe
此时代码被正确执行,结果在终端输出
g++ -g .\helloworld.cpp -o mySingleHelloworld
,其中 -g
表示生成的可执行文件带有调试信息;-o mySingleHelloworld
表示可以为生成的可执行文件自定义名称,大家可以自行尝试。
4.4 调试配置
4.4.1 launch.json 配置
点击边栏左侧的 Launch&Debug 按钮,点击创建 launch.json 文件
你将会发现项目的 .vscode
文件夹下生成了 launch.json
启动配置文件。
GDB 调试代码,在列表中选择 C++ (GDB/LLDB)
然后系统将创建一个默认的 launch.json 文件
将光标放在图中configuration的[]中,点击Add configration
在接下来弹出的选项中,选择C/C++:{gdb}启动
然后就可以看到类似代码
下面来一起看一下里面的参数。
以下属性对于每个启动配置都是必需的:
type 用于此启动配置的调试器类型。例如,每个安装的调试扩展都引入一个 type: 例如,node 用于内置的 node 调试器,或者 php 和 go 扩展 dephp和go。
request 此启动配置的请求类型。目前支持launch
和 attach
。
name 在Debug启动配置下拉菜单中显示的对读者友好的名称。
其他属性:
program 启动调试器时要运行的可执行文件或文件(所以我们需要先build生成一个执行文件 helloworld.exe,vs中的F5一键就把这些过程都做了:编译链接生成)。具体的需要键入运行时启动的程序路径:${workspaceFolder} ,其为工程目录,表示当前 VSCode 打开的文件的根目录。这里先配置成
"program": "${workspaceFolder}\\helloworld.exe",
args:表示启动程序时传递给程序进行调试的参数。可以为空。可以根据需求以后配置。
cwd: 表示用于查找依赖项和其他文件的当前工作目录。你也可以在当前目录下创建 build 文件夹, 在此文件夹下运行,这里配置为:
"cwd": "${workspaceFolder}",
"preLaunchTask": "C/C++: g++.exe 生成活动文件" 表示调试之前要做的
修改过后你将看到
如果下图中的 miDebuggerPath 的 gdb.exe 的所在路径中没有 gdb.exe 则需要在 MINGW64 中安装,然后填写 gdb 所在的路径即可
pacman -S mingw-w64-x86_64-gdb-multiarch
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "C:\\msys64\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
"options": {
"cwd": "${fileDirname}"
"problemMatcher": [
"$gcc"
"group": {
"kind": "build",
"isDefault": true
"detail": "调试器生成的任务。"
"version": "2.0.0"
tasks.json 中的变量可以参考 variables reference 理解,更多的 tasks.json 的配置细节,可以参看官网文档。
你可以修改你的 tasks.json
去 build 多文件的 C++ 项目。eg. "${workspaceFolder}/*.cpp"
代替 ${file}
.这将 build 所有的在你的工程中的 .cpp
文件. 你可以修改输出文件的路径将"${fileDirname}\${fileBasenameNoExtension}.exe"
改成"${workspaceFolder}\myProgram.exe"
。
这里修改如下:
Visual Studio Code