在Windows上使用VS Code和MinGW配置C++开发环境
本文将介绍如何在Windows系统上使用MinGW-w64工具链配置VS Code,实现C++代码的编译、运行和调试功能。
准备工作
系统要求
- Windows 10或11 64位系统
- 至少1GB可用内存
- 5GB以上磁盘空间
步骤一:安装MinGW-w64工具链
MinGW-w64是Windows平台上的GNU编译器集合,提供了GCC编译器和GDB调试器。推荐通过MSYS2安装,以获得最新版本和便捷的包管理。
安装MSYS2
-
访问MSYS2官方网站,下载最新安装程序(如
msys2-x86_64-20250622.exe
) -
运行安装程序,选择安装路径(建议使用短路径如
C:\msys64
,避免中文和空格) -
安装完成后,启动UCRT64终端(开始菜单中搜索"MSYS2 UCRT64")
配置国内镜像(可选)
为加速下载,建议配置国内镜像源:
-
打开MSYS2终端,编辑镜像配置文件:
notepad /etc/pacman.d/mirrorlist.mingw
-
在文件开头添加清华大学镜像源:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/$repo/
-
保存文件并关闭记事本
安装MinGW-w64工具链
在MSYS2终端中执行以下命令安装完整工具链:
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
按Enter确认安装,等待完成(约需要1-2GB下载空间)
步骤二:配置环境变量
-
打开系统环境变量设置:
- 按下
Win + R
,输入sysdm.cpl
并回车 - 切换到"高级"选项卡,点击"环境变量"
- 在"系统变量"中找到
Path
,点击"编辑"
- 按下
-
添加MinGW-w64路径:
- 点击"新建",添加
C:\msys64\mingw64\bin
(根据实际安装路径调整) - 点击"确定"保存所有对话框
- 点击"新建",添加
-
验证安装:
- 打开新的命令提示符(cmd)
- 输入以下命令验证版本:
g++ --version gdb --version
- 若显示版本信息,则安装成功
步骤三:安装VS Code及扩展
安装VS Code
- 访问VS Code官网下载安装程序
- 运行安装程序,建议勾选"添加到PATH"选项
- 按照向导完成安装
安装必要扩展
打开VS Code后:
- 按下
Ctrl + Shift + X
打开扩展面板 - 搜索并安装以下扩展:
- C/C++ (Microsoft官方扩展)
- Code Runner (可选,快速运行代码)
- Chinese (Simplified) (可选,中文界面)
步骤四:创建C++项目并配置
创建项目结构
- 创建项目文件夹(如
C:\CppProjects\HelloWorld
) - 在VS Code中打开该文件夹(
文件 > 打开文件夹
) - 创建源代码文件:右键点击文件夹 > 新建文件 > 命名为
main.cpp
编写示例代码
在main.cpp
中输入以下代码:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
int sum = 0;
for (int num : numbers) {
sum += num;
}
std::cout << "Hello, VS Code with MinGW!" << std::endl;
std::cout << "Sum of numbers: " << sum << std::endl;
return 0;
}
配置编译任务 (tasks.json)
- 按下
Ctrl + Shift + P
打开命令面板 - 输入
Tasks: Configure Default Build Task
并选择 - 选择
C/C++: g++.exe 生成活动文件
- 替换生成的tasks.json内容:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-fexec-charset=GBK" // 解决中文输出乱码问题
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "编译器: C:\\msys64\\mingw64\\bin\\g++.exe"
}
]
}
配置调试设置 (launch.json)
- 切换到"运行和调试"面板(Ctrl + Shift + D)
- 点击"创建launch.json文件",选择"C++ (GDB/LLDB)"
- 选择"g++.exe 生成和调试活动文件"
- 修改launch.json内容:
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": true, // 使用外部控制台窗口
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe 生成活动文件"
}
]
}
配置IntelliSense (c_cpp_properties.json)
- 按下
Ctrl + Shift + P
,输入C/C++: Edit Configurations (UI)
- 在配置页面设置:
- 编译器路径:
C:\msys64\mingw64\bin\g++.exe
- C标准:c17
- C++标准:c++17
- 编译器路径:
- 自动生成的c_cpp_properties.json如下:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "C:/msys64/mingw64/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
步骤五:编译、运行与调试
编译代码
- 确保
main.cpp
为活动文件 - 按下
Ctrl + Shift + B
运行编译任务 - 成功后在终端会显示编译结果,生成
.exe
文件
运行程序
方法一:通过VS Code终端
- 打开集成终端(
Ctrl +
) - 输入
.\main.exe
并回车
方法二:通过Code Runner(若已安装)
- 右键点击编辑区
- 选择"Run Code"
调试程序
- 在代码行号旁点击设置断点(出现红色圆点)
- 按下
F5
启动调试 - 调试控制栏出现,包含继续、单步、退出等按钮
- 在"变量"面板可查看当前变量值
- 在"监视"面板可添加需要监视的变量
常见问题解决
问题1:中文输出乱码
解决方案:在tasks.json的args中添加:
"-fexec-charset=GBK"
问题2:编译多文件项目
修改tasks.json中的args:
"args": [
"-g",
"${workspaceFolder}/*.cpp", // 编译所有cpp文件
"-o",
"${workspaceFolder}/main.exe",
"-fexec-charset=GBK"
]
问题3:MSYS2通配符支持问题
2024年11月后MSYS2默认禁用通配符扩展,解决方案:
方法一:在代码中添加:
int _dowildcard = -1; // 放在main函数前
方法二:修改tasks.json,添加链接选项:
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe",
"\"$(gcc -print-file-name=crt_glob.o)\""
]
问题4:调试时无法命中断点
确保:
- 编译时包含
-g
参数(已在tasks.json中配置) - launch.json中的
program
路径正确 - 源代码文件未被移动或重命名
进阶技巧
使用Makefile管理项目
对于复杂项目,建议使用Makefile:
- 在项目根目录创建
Makefile
:
CC = g++
CFLAGS = -g -Wall -std=c++17 -fexec-charset=GBK
SRC = $(wildcard *.cpp)
OBJ = $(SRC:.cpp=.o)
TARGET = main.exe
all: $(TARGET)
$(TARGET): $(OBJ)
$(CC) $(CFLAGS) -o $@ $(OBJ)
%.o: %.cpp
$(CC) $(CFLAGS) -c $< -o $@
clean:
del /Q $(OBJ) $(TARGET)
- 在VS Code中配置任务使用make:
{
"label": "Make",
"type": "shell",
"command": "mingw32-make",
"group": {
"kind": "build",
"isDefault": true
}
}
代码格式化
安装C/C++ Clang Command Adapter
扩展,配置自动格式化:
- 在设置中搜索
format on save
,勾选启用 - 设置默认格式化器为Clang
总结
通过以上步骤,你已成功在Windows系统上配置了基于VS Code和MinGW-w64的C++开发环境。这个环境支持代码编辑、智能提示、编译构建和调试功能,满足C++学习和小型项目开发需求。
- 点赞
- 收藏
- 关注作者
评论(0)