下面是完整的 MSYS2 安装 → UCRT64 编译器 → VS Code → Code Runner 教程,按 Windows 配置。
1.安装 MSYS2
打开 MSYS2 官网,下载 x86_64 安装程序。
安装路径保持:
C:\msys64
安装完成后,从开始菜单打开 MSYS2 UCRT64,或者直接运行:
C:\msys64\ucrt64.exe
终端提示符中应显示 UCRT64。MSYS2
2.更新 MSYS2
在 MSYS2 UCRT64 终端执行:
pacman -Syu
出现确认提示,输入 Y 并回车。
如果提示需要关闭终端完成更新,确认关闭,然后重新打开 MSYS2 UCRT64,再次执行:
pacman -Syu
直到没有待更新的软件包。后续更新 MSYS2 也使用这条命令。MSYS2
3.安装 UCRT64 编译工具链
仍然在 MSYS2 UCRT64 终端执行:
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
如果出现:
Enter a selection (default=all):
直接回车,安装全部组件。 随后询问是否安装,输入 Y 回车。该工具链包含 GCC/G++、GDB 等开发工具。github.com
安装完成后检查:
g++ --version
gdb --version
which g++
最后一条应该输出:
/ucrt64/bin/g++
对应 Windows 路径:
C:\msys64\ucrt64\bin\g++.exe
4.配置 Windows 环境变量
在 Windows 搜索框搜索 “编辑账户的环境变量”。
在上方的 用户变量 中:
- 选择
Path→ 编辑。 - 点击 新建,添加:
C:\msys64\ucrt64\bin - 点击确定保存。如果已有其他 MinGW 路径,将这一项移到它们前面。
完全退出 VS Code,再重新打开,让新的环境变量生效。
打开一个新的 Windows CMD,检查:
where g++
g++ --version
第一条结果应该是:
C:\msys64\ucrt64\bin\g++.exe
5.安装 VS Code 扩展
在 VS Code 扩展页面安装:
| 扩展 | 发布者 | 用途 |
|---|---|---|
| C/C++ | Microsoft | 代码补全、错误提示、调试支持 |
| Code Runner | Jun Han | 快捷编译运行 |
6.配置 VS Code 和 Code Runner
按 Ctrl + Shift + P,搜索:
Preferences: Open User Settings (JSON)
打开 用户设置 JSON,合并以下内容。已有配置不要直接删除,也不要重复添加同名设置。
"code-runner.runInTerminal": true,
"code-runner.saveFileBeforeRun": true,
"code-runner.ignoreSelection": true,
"code-runner.fileDirectoryAsCwd": true,
"code-runner.executorMap": {
"cpp": "cd /d \"$dirWithoutTrailingSlash\" && \"C:\\msys64\\ucrt64\\bin\\g++.exe\" -std=c++17 -g \"$fileName\" -o \"$fileNameWithoutExt.exe\" && \".\\$fileNameWithoutExt.exe\""
},
"terminal.integrated.profiles.windows": {
"CMD": {
"path": "C:\\Windows\\System32\\cmd.exe"
}
},
"terminal.integrated.defaultProfile.windows": "CMD",
"terminal.integrated.env.windows": {
"PATH": "C:\\msys64\\ucrt64\\bin;${env:PATH}"
},
"C_Cpp.default.compilerPath": "C:/msys64/ucrt64/bin/g++.exe",
"C_Cpp.default.intelliSenseMode": "windows-gcc-x64",
"C_Cpp.default.cppStandard": "c++17"
这份配置的效果:
- 补全与实际编译都使用 UCRT64 的 G++、C++17。
- Code Runner 在终端运行,支持
cin输入。 - 运行前自动保存,始终编译整个文件。
- 编译成功后才运行,生成的
.exe放在源文件旁边。github.com
保存后,点击终端的垃圾桶关闭旧终端,再新建终端,确保使用 CMD。
7.测试编译和输入
新建文件夹,例如:
D:\CppPractice
在 VS Code 中通过 文件 → 打开文件夹 打开它,然后创建 main.cpp:
#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Input two numbers: ";
cin >> a >> b;
cout << "Sum = " << a + b << '\n';
return 0;
}
保存后按:
Ctrl + Alt + N
点击下方终端,输入:
3 5
回车后应该显示:
Sum = 8
也可以右键编辑区,选择 Run Code。
这套配置用于单个 C++ 文件的编译运行;F5 断点调试还需要配置 tasks.json 和 launch.json。
如果你指的是 默认进入安全的“受限模式(Restricted Mode)”,不弹信任询问,在用户 settings.json 中加入:
"security.workspace.trust.enabled": true,
"security.workspace.trust.startupPrompt": "never",
"security.workspace.trust.emptyWindow": false,
"security.workspace.trust.untrustedFiles": "newWindow"
效果:
- 未信任的文件夹默认进入受限模式。
- 空窗口也默认处于受限模式。
- 不受信任的外部文件在新的受限窗口打开。
- 已经信任过的文件夹仍保持信任。code.visualstudio.com
要取消已有信任,按 Ctrl + Shift + P,搜索 Workspaces: Manage Workspace Trust,删除对应的受信任目录;如果信任的是父目录,也需要移除父目录。
如果你实际想要的是“默认信任,直接使用 Code Runner,不再询问”,则设置:
"security.workspace.trust.enabled": false
这会关闭工作区信任检查。受限模式会限制代码执行相关功能,因此你自己编写的 C++ 项目可以单独设为可信。code.visualstudio.com
明白,你要的是全局配置后,Code Runner 能运行,F5 也能自动编译并用 GDB 调试。之前只给了运行配置,没补全。
保留之前的 Code Runner 设置,再添加下面两项即可。G++ 负责编译,GDB 负责调试。
1.添加全局编译任务
按 Ctrl + Shift + P,输入:
Tasks: Open User Tasks
打开用户任务,如果让你选择模板,选 Others。填入以下内容;已有任务则将这一项加入 tasks 数组:
{
"version": "2.0.0",
"tasks": [
{
"label": "UCRT64: Build Active C++ File",
"type": "process",
"command": "C:\\msys64\\ucrt64\\bin\\g++.exe",
"args": [
"-std=c++17",
"-g",
"-O0",
"-Wall",
"-Wextra",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}",
"env": {
"PATH": "C:\\msys64\\ucrt64\\bin;${env:PATH}"
}
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
这是 全局用户任务,不用在每个文件夹创建 tasks.json。code.visualstudio.com
2.添加全局 GDB 调试配置
按 Ctrl + Shift + P → Preferences: Open User Settings (JSON)。
在之前的用户设置中,加入下面的 "launch" 项,注意与前面的设置用逗号分隔:
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "UCRT64: Debug Active C++ File",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [
{
"name": "PATH",
"value": "C:\\msys64\\ucrt64\\bin;${env:PATH}"
}
],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable GDB pretty printing",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "UCRT64: Build Active C++ File"
}
]
}
VS Code 支持通过用户设置中的 launch 定义跨项目的全局调试配置。这里会先编译当前文件,再通过 GDB 启动对应的 .exe。code.visualstudio.com
3.切换掉截图中那个错误的旧配置
- 打开并保存你的
.cpp文件。 - 按
Ctrl + Shift + D,在“运行和调试”顶部下拉框选择:UCRT64: Debug Active C++ File。 - 在代码行号左边点击设置断点。
- 确保当前编辑器显示的是
.cpp文件,再按 F5。
不要继续选原来带 enter program name 占位文字的配置。
| 操作 | 快捷键 |
|---|---|
| Code Runner 编译运行 | Ctrl + Alt + N |
| 编译并使用 GDB 调试 | F5 |
| 使用所选调试配置运行,不启用断点 | Ctrl + F5 |
| 仅编译 | Ctrl + Shift + B |
输入 cin 的内容时,在下方的终端输入。这套配置适用于单文件 C++ 程序,输出名称自动跟随源文件名。
“C_Cpp.debugShortcut”: false,
“code-runner.showRunIconInEditorTitleMenu”: true
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true,
"code-runner.runInTerminal": true,
"code-runner.saveFileBeforeRun": true,
"terminal.integrated.defaultProfile.windows": "Command Prompt"
}
"code-runner.executorMap": {
"cpp": "chcp 65001 >nul && cd /d \"$dir\" && g++ -std=c++17 -finput-charset=UTF-8 -fexec-charset=UTF-8 \"$fileName\" -o \"$fileNameWithoutExt.exe\" && \"$fileNameWithoutExt.exe\""
}