Featured image of post MinGW安装教程

MinGW安装教程

windows下,如何在VSCode内使用MinGW运行C++程序

什么是MinGW

  • MinGW(Minimalist GNU for Windows)是一个把 GNU 工具链(gcc/g++、binutils 等)移植到 Windows 的项目,能生成原生 Win32 可执行文件。
  • 它不做 POSIX 仿真(不是 Cygwin);生成的程序链接到 Microsoft 的 C 运行时(msvcrt)。
  • 原始 MinGW 项目主要面向旧的 32 位环境,更新较慢。

什么是 MinGW‑w64

  • MinGW‑w64 最初是 MinGW 的一个分支/重写,目标是支持 64 位(x86_64)并同时保持对 32 位(i686)的支持。
  • 提供更完整的 Windows API 头文件、Unicode 支持、改进的异常/线程处理(如 SEH/DWARF 支持),并支持更现代的 GCC 版本。
  • MinGW 是把 GNU 工具链带到 Windows 的早期项目,偏向旧的 32 位;MinGW‑w64 是更现代、更全面并支持 64 位的分支/重写,通常是现在的首选。

安装MinGW-w64

下载

直接前往github下载MinGW-w64

链接:niXman/mingw-builds-binaries-release

niXman/mingw-builds-binaries-release

各个版本的区别

  • i686x86_64

    • i686 是 32 位的 x86 架构。
    • x86_64 是 64 位的 x86 架构。
  • posixwin32、MCF

    • POSIX(Portable Operating System Interface)是一组标准接口/行为(由 IEEE 定义),常见于类 Unix 系统(Linux、macOS、BSD 等)。它规定了系统调用、命令行工具、shell 行为、文件权限、进程/信号语义等。
    • Win32 是 Windows 操作系统的原生 API 集合(也指 Windows 平台整体语义)。它基于 Windows 特有的对象(HANDLE、COM、Win32 线程/进程模型等),与 POSIX 接口在很多地方不同。
    • MCF Gthread是Windows 7及更高版本的线程支持库,它实现了gthread接口集,GCC在内部使用它来提供本地静态对象的初始化同步,libstdc++在内部使用它来提供C++11线程工具。
  • sehdwarf

    • seh 的意思是结构化异常处理(Structured Exception Handling),是一种在 Windows 上处理异常的机制。seh 可以处理硬件异常(如除零错误)和软件异常(如访问无效内存)。seh 也可以与 C++ 异常兼容。
    • dwarf 是一种在 Linux 上处理异常的机制,它使用了一种叫做 DWARF 的调试信息格式来描述程序的结构和行为。dwarf 可以处理 C++ 异常,但不能处理硬件异常。
  • msvcrt 和 ucrt

    • msvcrt 的意思是 Microsoft Visual C++ 运行时(Microsoft Visual C++ Runtime),是一个提供 C 标准库函数的动态链接库。msvcrt 是 Windows 系统自带的,但由于向后兼容性的问题,它没有完全遵循 C99 标准,并且缺少一些功能。
    • ucrt 的意思是通用 C 运行时(Universal C Runtime),是一个提供 C 标准库函数的动态链接库。ucrt 是 Windows 10 及更新版本的系统自带的,它遵循了 C99 和 C11 标准,并且提供了一些额外的功能。

对于一般在Win11系统上 学习使用C/C++ 可以选择 x86_64-win32-seh-ucrt

安装

直接将压缩文件解压至任意位置即可

压缩包内\mingw64文件夹

解压后将\mingw64\bin添加至系统环境变量即可

检查

输入 gcc -v 或者 gcc -version 确认安装完成

运行gcc -v

在VScode中使用

搜索安装 C/C++ Extension Pack 插件

C/C++ Extension Pack

打开任意文件夹,编写一个简单的c++程序

hello world

如遇到头文件报错: 检测到 #include 错误。请更新 includePath。说明 VSCode 未识别到本地编译器。需要确保环境变量中正确设置 \mingw64\bin 路径,并重新启动 VSCode 更新环境变量。

通常情况下,在新版 C/C++ 插件中,将会自动完成相关配置,无需手动设置 lunch.json 与 task.json

单击 F5 选择 c++ (GDB/LLDB) 作为调试器

选择调试器

选择 g++.exe 作为 c++ 编译器

选择编译器

调试控制台将显示相关调试信息

调试控制台

终端中将显示程序标准输出

终端

使用 Hugo 构建
主题 StackJimmy 设计