简明阐述MinGW,MSYS,MSYS2
几年前的一个项目连同环境,不小心被我从硬盘上不可恢复的删掉了。
为了挽救,没头苍蝇似的在网上闯荡了几天,发现自己以前对MinGW的理解有着很大的误区。
本文不是攻略,只是希望以更简洁、清晰的描述,来帮助大家理解MinGW,防止重蹈我的覆辙。
一, MinGW是什么
MinGW,即Minimalist GNU for Windows,是一个原生的GCC(GNU Compiler Collection)的Windows接口集,具有用于建立原生Windows程序的可自由发布的头文件导入库。允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95发行版以上的 Windows OS 有效。
已停止更新,内置的GCC停留在4.8.1版本
通俗点,抓重点,就是:跨Linux和Windows平台的,编译Windows程序的,包含头文件和端口库的工具链。
二,关联项目
Cygwin: MinGW实际上是Cygwin的衍生品。但Cygwin更多是一个模拟的Unix环境,偏重于Unix软件移植到Windows。
Msys: MinGW开发者从早期Cygwin分支的,配合MinGW工具链的,一个小型Linux模拟环境。扩展能力弱。
MinGW-W64:MinGW刚建立时,只能编译32位Windows程序。由于对提供64位支持的分歧,形成了不同的分叉,出现了可以支持32位和64位(区分版本)的MinGW-W64。它支持更多的 API,甚至支持 32 位 host 编译 64 位应用以及反过来的“交叉”编译。
要注意的是,W64已经变成厂商名,而不是代表64位支持,如GCC源码的配置的三元组目标平台表示:
- -i386-pc-mingw32:- 32位x86指令集架构 - pc厂商 - mingw32系统 (MinGW系统时用)
- -i686-w64-mingw32:- 32位x86指令集架构 - W64 厂商 - mingw32系统(MinGW-W64系统时用)
Msys2: 由于MinGW Msys总不更新,于是 Alex 等人建立了新一代的Msys项目,从较新Cygwin分支,但是更偏重于建立不依赖于WinAPI的原生Windows程序。有更优秀的包管理器 pacman,有活跃的开发者跟用户组,有大量预编译的软件包(虽然肯定没有Cygwin多)。
评论:Msys2为更新而来,不好的也是更新。旧的项目要是删了再想找回来,难于登天。它的服务器把旧包都删掉了-_-
下面的项目更多的是MinGW/W64工具集的不同发放形式:
- TDM-GCC
- MinGW Builds
- MinGW Distro
- -- 后面会有一些单独的说明,以及常见的问题。
- MinGW Builds
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfkbjbf
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01