Mingw-w64
介绍
AI介绍
MinGW-w64 是原版 MinGW(Minimalist GNU for Windows) 的增强分支,提供完整的 GNU 编译器套件(GCC) 工具链,支持 32 位和 64 位 Windows 开发,可直接生成不依赖第三方 DLL 的原生程序。
核心特性:
- 双架构支持:
i686(32 位)和x86_64(64 位)编译目标。
- 现代 GCC 工具链:
- 支持 C、C++、Fortran、Ada(最新 GCC 13+)。
- 无外部依赖:
- 生成独立的
.exe文件(无需 Cygwin/MSYS 运行时库)。
- 生成独立的
- 兼容性:
- 支持 Windows 7/10/11 和 UCRT(通用 C 运行时库)。
- 开源与社区驱动:
- 开发活跃,托管于 GitHub。
典型用途:
- 跨平台开发、游戏模组制作、系统工具开发、旧版软件维护。
图片
获取
备注
关于mingw
mingw-w64是原版mingw的增强版,被 GCC 官方支持,并且持续更新,目前更推荐使用它。
原版mingw目前主要由社区维护,但仍可用于基本的 Windows 开发。
官网地址是:打开
sourceforge地址是:打开
MinGW 命名中各术语的含义
在 MinGW(Minimalist GNU for Windows)的编译工具链命名中,常见的术语(如 posix、win32、sjlj、dwarf、seh)主要涉及 线程模型 和 异常处理机制。以下是它们的详细解释:
1. 线程模型
- posix:使用 POSIX 线程(pthreads),兼容 Unix/Linux 标准,适合需要跨平台移植的代码。
- win32:使用 Windows 原生线程(Win32 threads),依赖 Windows API,性能通常更好,但无法兼容 POSIX 标准。
2. 异常处理机制
- sjlj(SetJump/LongJump):基于
setjmp/longjmp的异常处理,兼容 32/64 位,但性能较差。 - dwarf:使用 DWARF-2 调试格式实现异常处理,仅支持 32 位,性能优于 SJLJ。
- seh(Structured Exception Handling):利用 Windows 结构化异常处理(SEH),仅支持 64 位,性能最佳。
常见组合示例
i686-posix-dwarf→ 32 位,POSIX 线程,DWARF 异常处理。x86_64-posix-seh→ 64 位,POSIX 线程,SEH 异常处理。i686-win32-sjlj→ 32 位,Win32 线程,SJLJ 异常处理。
如何选择?
- 64 位系统:优先选
seh(性能最优)。 - 32 位系统:可选
dwarf(性能好)或sjlj(兼容性高)。 - 线程模型:根据代码需求选择
posix(兼容 Linux)或win32(纯 Windows 开发)。