当前位置: 首页 > news >正文

MinGW-w64 工具链(GCC 编译器) 的不同构建版本的区别

        下载Mingw是有很多不同的名称,有啥区别?

  • i686-15.2.0-release-mcf-dwarf-ucrt-rt_v13-rev0.7z

    sha256:3a7de8f3e0e8a206b0e0bb48ba009d83317a8ccd9ca171a5dcfa40edae97e44a

    95.9 MBAug 13
  • i686-15.2.0-release-posix-dwarf-msvcrt-rt_v13-rev0.7z

    sha256:52315cbcc65ab01eb9d5c9cfd1904fafeb1ad302b1233982b95287b5939df764

    95.9 MBAug 13
  • i686-15.2.0-release-posix-dwarf-ucrt-rt_v13-rev0.7z

    sha256:8559c1e27c48f139400b4d7da848ca30a7bdb9f1fbe06e241b1b53baa6149d2a

    95.8 MBAug 13
  • i686-15.2.0-release-win32-dwarf-msvcrt-rt_v13-rev0.7z

    sha256:672b7dacb1b27664083b27d3f982694bf434d06f5e3b0b0e0eba4d3e710b0df7

    95.9 MBAug 13
  • i686-15.2.0-release-win32-dwarf-ucrt-rt_v13-rev0.7z

    sha256:22046362802c0a03af13e216fadb8018fca5cf1d649f1202b11bcb5cd1a2b091

    95.9 MBAug 13
  • x86_64-15.2.0-release-mcf-seh-ucrt-rt_v13-rev0.7z

    sha256:07cbd8e9931053afc046a85e0e3b2a782d83468a66ca2d31a25a385ef567ffd0

    95.3 MBAug 13
  • x86_64-15.2.0-release-posix-seh-msvcrt-rt_v13-rev0.7z

    sha256:9953edc0b80a25d1c41dba92956a495ae9d43b15e2ff589e6fa3ff0892d5e3d9

    95.2 MBAug 13
  • x86_64-15.2.0-release-posix-seh-ucrt-rt_v13-rev0.7z

    sha256:05b3361a3a3e20a5789db37fc2bb6a70d0b02e4667b5a31d9a6672ea40d22c69

    95 MBAug 13
  • x86_64-15.2.0-release-win32-seh-msvcrt-rt_v13-rev0.7z

    sha256:3e09304bd489f78227634cceaace80b3f3111c1280dcc1d1802b2d6120b2bfb5

    95.4 MBAug 13
  • x86_64-15.2.0-release-win32-seh-ucrt-rt_v13-rev0.7z

    sha256:9e9f0b912a59d2cfb3ce5a01bae4e7a05e4be4f8ff89e36e0f57606ec525525d

    95.3 MBAug 13
  • Source code(zip)

    Aug 13

  • Source code(tar.gz)

    Aug 13

MinGW-w64 工具链(GCC 编译器)不同版本之间的区别主要体现在以下几个方面:


1. 架构(Architecture)

  • i686:32 位 x86 架构(即传统的 32 位 Windows 程序)。
  • x86_64:64 位 x86 架构(现代 64 位 Windows 程序)。

2. 线程模型(Threading Model)

  • mcf:Multi-Call Frame(较新、较少见),是 MinGW-w64 中一种实验性或替代性的线程模型,用于支持某些特定运行时行为(如更轻量级的异常处理或协程)。但目前主流仍为 posix 或 win32
  • posix:使用 POSIX 线程(pthreads)实现,通过 winpthreads 库在 Windows 上模拟 POSIX 线程行为。适合需要标准 C++11 多线程(如 std::thread)支持的程序。
  • win32:直接使用 Windows 原生线程 API。不依赖 winpthreads,体积更小,但 C++11 多线程支持可能受限或需额外配置(旧版 GCC 可能不完全支持)。

注:mcf 是近期 MinGW-w64 引入的新线程/异常模型组合,主要用于优化某些场景下的性能或兼容性,但生态支持尚不如 posix/win32 成熟。


3. 异常处理机制(Exception Handling)

  • dwarf:DWARF 异常处理。仅适用于 32 位(i686),优点是生成的二进制较小,但 不支持与 Windows SEH 兼容的异常交互(例如不能 catch Windows 结构化异常)。
  • seh:Structured Exception Handling(结构化异常处理)。适用于 64 位(x86_64),是 Windows 原生异常机制,性能好、兼容性强,推荐用于 64 位开发。
  • (32 位通常用 sjlj 或 dwarf,64 位用 seh

注意:i686 一般不会用 seh,因为 Windows 32 位的 SEH 实现与 GCC 不完全兼容,所以 32 位多用 dwarfsjlj


4. C 运行时库(CRT)

  • ucrt:Universal C Runtime,是 Windows 10 及以后的标准 C 运行时(由微软维护),推荐使用,兼容性好,支持最新 C 标准。
  • msvcrt:旧版 Microsoft Visual C++ 运行时(如 msvcrt.dll),存在于所有 Windows 系统中,但功能较旧,不支持 C99/C11 新特性。

使用 ucrt 的程序在 Windows 10+ 上无需额外部署 CRT(系统自带),但在 Windows 7/8 可能需要安装 KB2999226 补丁。


对比你的四个文件:

文件名架构线程模型异常处理CRT适用场景
i686-15.2.0-release-mcf-dwarf-ucrt-rt_v13-rev0.7z32 位mcfdwarfucrt32 位实验性构建,适合测试或特殊需求
x86_64-15.2.0-release-mcf-seh-ucrt-rt_v13-rev0.7z64 位mcfsehucrt64 位实验性构建,可能用于协程或轻量级线程
x86_64-15.2.0-release-posix-seh-ucrt-rt_v13-rev0.7z64 位posixsehucrt最常用推荐:支持 C++11 多线程 + 原生异常 + 新 CRT
x86_64-15.2.0-release-win32-seh-msvcrt-rt_v13-rev0.7z64 位win32sehmsvcrt兼容老系统(如 Win7 无 UCRT 补丁),但 C++ 多线程支持弱

推荐选择:

  • 日常开发(64 位) → 选:x86_64-...-posix-seh-ucrt...
  • 需要最小依赖 / 老系统兼容 → 可考虑 win32-seh-msvcrt,但注意 C++11 线程问题
  • 32 位开发 → 通常选 i686-...-posix-dwarf-ucrt...(但你列出的是 mcf,可能非主流)
  • mcf 版本 → 目前属于前沿或实验性质,除非有特定需求(如使用最新 MinGW-w64 特性),否则不建议生产使用
http://www.dtcms.com/a/614241.html

相关文章:

  • 【C++】 set/multiset底层原理与逻辑详解
  • 易语言exe反编译器:深度解析与使用指南
  • 19.优先级队列容器priority_queue
  • 做盗版视频网站成本多少钱低调与华丽wordpress下载
  • JAVA EE初阶 6: 网络编程套接字
  • 旅行网站建设方案策划书wordpress一键优化
  • 自己动手写深度学习框架(优化深度学习框架)
  • C语言编译过程五个步骤 | 深入解析编译过程中的关键环节
  • MATLAB基于云-灰关联分析的教学评价研究
  • 网站由谁备案hyip网站开发
  • 太阳能建设网站y2学年做的租房网站
  • 商场BA楼宇自控系统项目案例
  • React Router
  • 自建网站系统兰州最近事件
  • 【计算机算法设计与分析】动态规划与贪心算法教程:从矩阵连乘到资源优化
  • 智能化时代的SEO关键词优化新策略与实践探索
  • 免费外贸建站平台访问网页的流程
  • 宁夏水利厅建设处网站阳信网站建设
  • 传导案例:某3KW 开关电源整改案例分享
  • 针对特定业务场景(如金融交易、日志处理)选择最优的MPSC实现
  • 练习python题目小记(五)
  • 怎么建立网站 个人云速网站建设公司
  • 怎么用自己电脑做网站社区教育网站建设方案
  • 卫星互联网:弥合数字鸿沟的“天基网络“
  • 选择排序的原理及示例
  • 【开题答辩全过程】以 房产网站为例,包含答辩的问题和答案
  • spring Profile
  • 当AI不再等待指令:智能体工作流如何重构商业逻辑
  • 手机网站建设哪儿好wordpress怎么固定导航栏
  • 基于大数据Python豆瓣电影可视化系统 电影数据爬虫 数据清洗+数据可视化 Flask+requests (MySQL+Echarts 源码+文档)✅