在Windows上使用VS Code和MinGW配置C++开发环境

举报
码事漫谈 发表于 2025/07/20 20:04:59 2025/07/20
【摘要】 本文将介绍如何在Windows系统上使用MinGW-w64工具链配置VS Code,实现C++代码的编译、运行和调试功能。 准备工作 系统要求Windows 10或11 64位系统至少1GB可用内存5GB以上磁盘空间 步骤一:安装MinGW-w64工具链MinGW-w64是Windows平台上的GNU编译器集合,提供了GCC编译器和GDB调试器。推荐通过MSYS2安装,以获得最新版本和便捷的...

image.png

本文将介绍如何在Windows系统上使用MinGW-w64工具链配置VS Code,实现C++代码的编译、运行和调试功能。

准备工作

系统要求

  • Windows 10或11 64位系统
  • 至少1GB可用内存
  • 5GB以上磁盘空间

步骤一:安装MinGW-w64工具链

MinGW-w64是Windows平台上的GNU编译器集合,提供了GCC编译器和GDB调试器。推荐通过MSYS2安装,以获得最新版本和便捷的包管理。

安装MSYS2

  1. 访问MSYS2官方网站,下载最新安装程序(如msys2-x86_64-20250622.exe

  2. 运行安装程序,选择安装路径(建议使用短路径如C:\msys64,避免中文和空格)

  3. 安装完成后,启动UCRT64终端(开始菜单中搜索"MSYS2 UCRT64")

配置国内镜像(可选)

为加速下载,建议配置国内镜像源:

  1. 打开MSYS2终端,编辑镜像配置文件:

    notepad /etc/pacman.d/mirrorlist.mingw
    
  2. 在文件开头添加清华大学镜像源:

    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/$repo/
    
  3. 保存文件并关闭记事本

安装MinGW-w64工具链

在MSYS2终端中执行以下命令安装完整工具链:

pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain

按Enter确认安装,等待完成(约需要1-2GB下载空间)

image.png

步骤二:配置环境变量

  1. 打开系统环境变量设置:

    • 按下Win + R,输入sysdm.cpl并回车
    • 切换到"高级"选项卡,点击"环境变量"
    • 在"系统变量"中找到Path,点击"编辑"
  2. 添加MinGW-w64路径:

    • 点击"新建",添加C:\msys64\mingw64\bin(根据实际安装路径调整)
    • 点击"确定"保存所有对话框
  3. 验证安装:

    • 打开新的命令提示符(cmd)
    • 输入以下命令验证版本:
      g++ --version
      gdb --version
      
    • 若显示版本信息,则安装成功

步骤三:安装VS Code及扩展

安装VS Code

  1. 访问VS Code官网下载安装程序
  2. 运行安装程序,建议勾选"添加到PATH"选项
  3. 按照向导完成安装

安装必要扩展

打开VS Code后:

  1. 按下Ctrl + Shift + X打开扩展面板
  2. 搜索并安装以下扩展:
    • C/C++ (Microsoft官方扩展)
    • Code Runner (可选,快速运行代码)
    • Chinese (Simplified) (可选,中文界面)

步骤四:创建C++项目并配置

创建项目结构

  1. 创建项目文件夹(如C:\CppProjects\HelloWorld
  2. 在VS Code中打开该文件夹(文件 > 打开文件夹
  3. 创建源代码文件:右键点击文件夹 > 新建文件 > 命名为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)

  1. 按下Ctrl + Shift + P打开命令面板
  2. 输入Tasks: Configure Default Build Task并选择
  3. 选择C/C++: g++.exe 生成活动文件
  4. 替换生成的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)

  1. 切换到"运行和调试"面板(Ctrl + Shift + D)
  2. 点击"创建launch.json文件",选择"C++ (GDB/LLDB)"
  3. 选择"g++.exe 生成和调试活动文件"
  4. 修改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)

  1. 按下Ctrl + Shift + P,输入C/C++: Edit Configurations (UI)
  2. 在配置页面设置:
    • 编译器路径C:\msys64\mingw64\bin\g++.exe
    • C标准:c17
    • C++标准:c++17
  3. 自动生成的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
}

步骤五:编译、运行与调试

编译代码

  1. 确保main.cpp为活动文件
  2. 按下Ctrl + Shift + B运行编译任务
  3. 成功后在终端会显示编译结果,生成.exe文件

运行程序

方法一:通过VS Code终端

  1. 打开集成终端(Ctrl +
  2. 输入.\main.exe并回车

方法二:通过Code Runner(若已安装)

  1. 右键点击编辑区
  2. 选择"Run Code"

调试程序

  1. 在代码行号旁点击设置断点(出现红色圆点)
  2. 按下F5启动调试
  3. 调试控制栏出现,包含继续、单步、退出等按钮
  4. 在"变量"面板可查看当前变量值
  5. 在"监视"面板可添加需要监视的变量

常见问题解决

问题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:调试时无法命中断点

确保:

  1. 编译时包含-g参数(已在tasks.json中配置)
  2. launch.json中的program路径正确
  3. 源代码文件未被移动或重命名

进阶技巧

使用Makefile管理项目

对于复杂项目,建议使用Makefile:

  1. 在项目根目录创建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)
  1. 在VS Code中配置任务使用make:
{
    "label": "Make",
    "type": "shell",
    "command": "mingw32-make",
    "group": {
        "kind": "build",
        "isDefault": true
    }
}

代码格式化

安装C/C++ Clang Command Adapter扩展,配置自动格式化:

  1. 在设置中搜索format on save,勾选启用
  2. 设置默认格式化器为Clang

总结

通过以上步骤,你已成功在Windows系统上配置了基于VS Code和MinGW-w64的C++开发环境。这个环境支持代码编辑、智能提示、编译构建和调试功能,满足C++学习和小型项目开发需求。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。