MinGW

✍ dations ◷ 2025-06-16 08:51:34 #SourceForge项目,GNU,程序设计工具,编译器软件,C编译器,公有领域软件

MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。

另有可用于产生32位及64位Windows可执行文件的MinGW-w64项目,是从原本MinGW产生的分支。如今已经独立发展。

MinGW是从Cygwin(1.3.3版)基础上发展而来。

GCC支持的语言大多在MinGW也受支持,其中涵盖C、C++、Objective-C、Fortran及Ada。

对于C语言之外的语言,MinGW使用标准的GNU运行库,如C++使用GNU libstdc++。

但是MinGW使用Windows中的C运行库。因此用MinGW开发的程序不需要额外的第三方DLL支持就可以直接在Windows下运行,而且也不一定必须遵从GPL许可证。这同时造成了MinGW开发的程序只能使用Win32API和跨平台的第三方库,而缺少POSIX支持,大多数GNU软件无法在不修改源代码的情况下用MinGW编译。

Cygwin 与 MinGW 皆可用来移植 Unix 软件到 Windows,但它们采用截然不同的实现。Cygwin 旨在提供一个完整的 POSIX 层,包括主流 Unix 的系统调用及库实现;其重视兼容性优先于性能。相对的,MinGW 则着重简化与性能。因此,它并不提供某些难以用 Windows API 实现的 POSIX API,例如 fork(),mmap() 和 ioctl()。使用跨平台库写成的应用,若库本身已移植到了 MinGW(例如 SDL、wxWidgets、Qt 或 GTK+),则那些应用通常也容易用 MinGW 编译。

用 Cygwin 写成的 Windows 程序,因为是运行在公共著作权的兼容 DLL 上,所以 DLL 必须随着程序源代码一起发布。MinGW 则不需要兼容层,因为基于 MinGW 的程序是直接调用 Windows API 编译的。

MinGW 搭配 MSYS 可以产生一个小却完整的运行环境,让程序可以加载随身设备当中,却不动到注册表或产生额外文件。

在 POSIX 系统下,用 MinGW-GCC 交叉编译 Windows 应用也是可行的。这意味着开发者不需要安装 Windows 与 MSYS 才能编译 Windows 软件,或 Windows+Cygwin 软件。

MinGW编译器在实现异常机制时,有三种可选方式:

MinGW-w64是2005年由OneVision Software根据洁净室设计原则而独立开发,以解决当时的MinGW项目更新缓慢,缺少新的重要的API以及64位支持。2008年MinGW-w64项目开源,由Kai Tietz维护。

很多非官方组织提供了包含一系列集成工具链的MinGW安装包。其中大部分基于MinGW-w64项目。

相关

  • 哈塞尔贝克哈勒尔贝克(荷兰语:Harelbeke),比利时西佛兰德省部的一座城市,人口26,172(2006年)。
  • 印度总统印度总统,是印度的国家元首及第一公民,也是印度武装部队的最高统帅。理论上,总统拥有不少权力,不过实际上许多赋予总统的权力由总理领导的部长会议行使。总统由国会及各邦立法机
  • Yandex.DiskYandex.Disk(俄语:Яндекс.Диск)是Yandex创建的一项云服务,它使用户可以将文件存储在“云”服务器上并与其他人在线共享。该服务基于不同设备之间的数据同步。Yandex.D
  • 互联网成人电影数据库互联网成人电影数据库(Internet Adult Film Database,缩写 IAFD),是美国乃至世界最大的成人影片数据库,兼有索引功能。每天,有成千上万来自世界各地的成人影片爱好者在IAFD里搜寻
  • 配边在数学中,配边(英文:cobordism 来自法文的 )是紧流形的等价关系。它使用边界的拓扑概念。若两个流形M和N的不交并是另一个流形W的边界,那么M和N这两个流形是配边的。此外M和N的配
  • 李庚希Instagram:https://instagram.com/literesa_?igshid=5gca8z4oj22o微博:李庚希(2000年4月22日-),中国大陆女演员。2015年李庚希在15岁被徐静蕾带进演艺圈,练了10个月。2016年被徐
  • 亚扎丁坚亚扎丁坚(缅甸语:ရာဇသင်္ကြန်,发音:),旧译阿剌者僧加蓝,是缅甸敏象王国的君主,与其兄阿丁克亚、弟底哈都共同创建了敏象王国。亚扎丁坚是掸族人,与兄弟共同在蒲甘王国军中
  • 阿兰德·海廷阿兰德·海廷(英语:Arend Heyting,1898年5月9日-1980年7月9日)是荷兰数学家和逻辑学家。他是鲁伊兹·布劳威尔在阿姆斯特丹大学的学生之一,他做了很多工作来使直觉主义逻辑立足
  • 朱杰 (柬埔寨)朱杰(高棉语:ជូ ជេត,Chou Chet,20世纪?-1978年),又名Ta Si,柬埔寨政治家,红色高棉领导人之一。朱杰在1950年代是高棉伊萨拉的领导人之一,参与编辑左翼报纸,因批评西哈努克的政治曾
  • LibtoolGNU Libtool是一种属于GNU建构系统的GNU程序设计工具,用来产生便携式的库。这里引用libtool手册的说明:GNU libtool借着将平台特定的相依性,和用户界面,都封装在一个脚本中,来简