Mingw、Mingw-w64、msys、msys2、Cygwin等总结

48 篇文章 3 订阅
35 篇文章 0 订阅

Mingw包含一个c运行库,以及windows的头文件,同时包含了一些编译器工具链,能够将编译windows程序生成windows的32位可执行文件。

Mingw-w64是从Mingw衍生而来,能够生成32和64位的windows可执行文件。

msys是上面两个的一个集成环境,工具链更加完善。

msys2与msys不同,msys集成了Mingw和Cygwin这两个,同时包含一个包管理工具,包含了很多编译好的dll包,使用比较方便,但是对于linux下大多数的调用了Unix类函数的包,都是使用Cygwin编译完成的。

Cygwin是一个中间层,在windows下实现了Unix的类函数,使用这个可以生成任何linux下的程序,根本不用修改程序。

 

总结:

如果程序只使用了windows的API或者相应的windows下的库函数(如果没有某个库函数,我们也可以重写一个windows下的库函数),我们就使用Mingw-w64就好了(为啥不使用Mingw,因为停更了)。但是如果使用了类Unix的API,那就必须使用Cygwin来生成。

当然,如果需要使用Cygwin来生成了,我们不如直接使用msys2来完成了。

 

如果是商用程序,就必须注意了,都是GPL协议。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MSYS2CygwinMinGW 和 Clang 都是用于在 Windows 系统上编译和运行 Unix/Linux 程序的工具集。 MSYS2 是一个基于 Cygwin 的工具集,它包含了 Cygwin 本身所提供的工具和库,同时也包含了许多其他开源软件的工具和库,例如 Git、Python、Ruby、GCC 等。MSYS2 还提供了一些额外的工具和库,例如 Pacman 包管理器和 MSYS2 系统工具。 Cygwin 是一个用于在 Windows 上模拟 Unix/Linux 环境的工具集,它提供了一个完整的 POSIX 环境,包括了许多 Unix/Linux 工具和库,例如 Bash、GCC、GDB、Emacs 等。 MinGW 是一个基于 Windows 平台的轻量级开发工具集,它允许开发者使用 GCC 编译器和相关工具在 Windows 上编译和运行 C/C++ 程序。与 Cygwin 不同的是,MinGW 不需要模拟 Unix/Linux 环境,它直接在 Windows 上运行,并且生成的可执行文件不依赖于任何运行时库。 Clang 是一个 C/C++/Objective-C 编译器,它支持多种平台,包括 Windows。与 GCC 不同的是,Clang 的编译速度更快,生成的代码更加优化,同时也支持更多的语言特性和标准。 总的来说,MSYS2Cygwin 更加完整和强大,可以提供一个完整的 Unix/Linux 环境,但是相应的也会带来更多的性能损失和依赖问题;MinGW 则更加轻量级,可以直接在 Windows 上运行,但是相应的可能会缺少一些 Unix/Linux 工具和库;而 Clang 则是一种更加优秀的编译器选择,可以在 Windows 上提供更加快速和优化的编译体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值