1.MinGW 介绍
MinGW(Minimalist GNU for Windows)是一个为 Windows 平台设计的轻量级 GNU 开发工具集。它允许开发者在 Windows 环境下使用 GNU 工具链(如 GCC)编译和构建原生 Windows 应用程序,无需依赖第三方 C 运行时库(如 Cygwin 的 cygwin.dll),而是直接调用微软的标准运行时库 MSVCRT.DLL
MinGW 核心组件
| 组件 | 功能说明 | 重要性 |
|---|---|---|
| GCC | GNU 编译器套件,支持 C、C++、Fortran 等语言编译,生成 Windows 可执行文件(.exe)。 | ⭐⭐⭐⭐⭐ |
| Binutils | 二进制工具集,包含链接器(ld)、汇编器(as)、库管理器(ar)等 | ⭐⭐⭐⭐ |
| MinGW Runtime | 提供 Windows API 头文件和库(如 w32api),使程序可直接调用 Windows 系统函数。 | ⭐⭐⭐⭐ |
| MSYS | 模拟 Unix 命令行环境,支持 Shell 脚本、make 等工具,简化跨平台构建流程。 | ⭐⭐⭐ |
| GDB | GNU 调试器,用于调试编译后的程序。 | ⭐⭐ |
2.安装与配置
相关网址:
- 官网:www.mingw-w64.org
- 编译好的二进制文件 下载网址:mingw-builds-binaries
安装包选择:

| 字段位置 | 参数名称 | 可选值 | 技术含义与特性 | 适用场景 |
|---|---|---|---|---|
| 第1字段 | 目标架构 | i686 | 32位x86架构(兼容64位系统) | 32位应用开发/旧系统兼容 |
x86_64 | 64位x86架构(仅支持64位系统) | 高性能应用/大内存处理 | ||
| 第2字段 | GCC版本 | 14.2.0 | 编译器核心版本号 | 决定语言特性支持(如C++20标准) |
| 第3字段 | 构建类型 | release | 稳定发行版(无调试符号) | 生产环境部署 |
| 第4字段 | 线程模型 | posix | 支持C++11多线程API,兼容Linux线程语义 | 跨平台开发(Linux/Windows) |
win32 | 仅支持Windows原生线程API | 纯Windows应用开发 | ||
mcf | Windows 7+优化线程库(Mingw Cooperative Fibers) | Win7及以上系统专有优化 | ||
| 第5字段 | 异常处理机制 | dwarf | 使用DWARF-2调试格式(仅支持32位),生成带调试信息的可执行文件 | 32位程序调试开发 |
seh | 结构化异常处理(64位专属),直接调用系统异常机制 | 64位高性能应用 | ||
| 第6字段 | C运行时库 | ucrt | 通用C运行时库(Windows 10+),支持C11标准 | 现代应用开发/UWP兼容 |
msvcrt | 传统Microsoft C运行时库(兼容WinXP~Win8.1) | 旧系统维护/VC6兼容项目 | ||
| 第7字段 | 运行时版本 | rt_v12 | 运行时库的API版本号 | 决定系统API兼容范围 |
| 第8字段 | 构建修订号 | rev0/rev1 | 工具链的迭代修订版本 | 修复特定版本缺陷 |
解压后的目录:

设置环境变量(可选)
如果后面使用msys2环境,不建议加入环境变量,避免发生冲突


3.编译
由于MinGW是将 GNU工具链移植到Windows上的,其编译程序和库 和在Linux用gcc编译是一样的,可以参考之前的文章。
编译程序:1.3 编译程序:单个C文件和多个C文件
编译库:1.4 编译库:静态库、动态库
MinGW与MSYS2的简单使用指南
85

被折叠的 条评论
为什么被折叠?



