msys2安装总结

以前一直使用本地gcc for windows unix for windows的软件,这些软件都是已经编译好的,可以直接在Windows下运行的,而且如果在环境变量中添加了,就可以在cmd中直接使用,和linux下差不多,但还是有点区别

网上偶然看到了

msys2的这个软件包,就去了解了。

区别如下:

这个是https://blog.zengrong.net/post/cygwin_and_mingw/网站上面摘录的,可见我们太长使用的mingw,其实仅仅是仿真linux环境中的一种方式,而且是比较古老的方式了,目前来看,msys2更新比较多,因此就尝试了。

特点CygwinMinGW/MSYSMSYS2
是否GNU
更多软件支持? 支持绝大多数的 GNU 软件 支持常用软件,git、Vim等软件需要独立支持(详细介绍见下方) 支持大多数 GNU 软件
更类Linux? Cygwin在Windows中就好像Wine在Linux中 实现了Bash等主要的Linux程序 原生64/32bit支持
GCC编译 内含MingGW32交叉编译功能,既支持依赖cygwin1.dll的程序编译,也支持独立的Windows程序编译;可以直接编译Linux下的应用程序 支持独立的Windows程序编译 支持独立的Windows程序编译
中文支持 直接支持中文显示和输入法 需要配置才能支持中文显示和输入,删除一个中文字符需要删除2次 支持中文显示和输入法,中文帮助系统和中文提示(部分软件)
运行速度

百度百科上面解释:

MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从"MinGW-生成")基础上产生的,追求更好的互操作性的 Windows 软件。

MSYS2是什么

编辑
MSYS2 [1]  是MSYS的一个升级版,准确的说是集成了pacmanMingw-w64的Cygwin升级版, 提供了bash shell等linux环境、版本控制软件(git/hg)和MinGW-w64 工具链。与MSYS最大的区别是移植了 Arch Linux的软件包管理系统 Pacman(其实是与Cygwin的区别)。

特点

编辑
  • 安装方便
  • 自带 pacman 管理,可以使用 pkgtool 来 makepkg
  • 较快的源速度(可以修改源地址)
  • 自带软件和库较全而且比较新
  • 使用mingw-w64工具链,可以编译32位或64位代码(需要自行安装)
  • 中文支持好,可以直接输入和浏览中文目录

可以看出,msys2还移植了arch的软件管理包,pacman,这个就是不同的linux发行本,不同的软件管理包一样,Ubuntu系列是apt,还有更加新的,具体忘记了,rethat是yum等。使用方式大同小异。

如果不愿意使用 Cygwin 或者 MinGW 这种 ”重型“ 的 port,又喜欢 unix 下的工具链,那么可以尝试一下下面几个原生移植工具集:

以前我还使用了上面的几个软件,上面几个是软件,和上面三个大平台是有区别的。

Cygwin 与 MinGW/MSYS/MSYS2 实际上就是在windows下仿真了一个linux平台

很多文件目录的结构都差不多

 总结

(https://blog.zengrong.net/post/msys_mingw_and_cygwin_gcc/)

MinGW是windows版本的gcc集合,不需要依赖中间层。

MSYS是小型的linux的环境的模拟,可以与MinGW结合来模拟linux环境下使用MinGW的gcc。

Cygwin是功能强大的linux环境,由于有cygwin1.dll实现了底层的windows api到linux api的转化。所以在Cygwin里开发就相当于在linux上开发,对于开发人员来说就相当于调用linux类型的api,所以这样开发的程序也可以直接移植到linux上。但是如果这样的程序要在windows上执行的话,运行时必须要cygwin1.dll支持。

根据以上的分析,如果在windows开发linux跨平台的程序,linux模拟器Cygwin以及所包含的gcc是很好的选择,但是开发的程序必须依赖一个cygwin1.dll。如果你只是想在windows下使用gcc编译器也不想依赖其他的dll,mingw是很好的一个选择。

 

另外:https://www.cnblogs.com/tshua/p/5932501.html

 MSYS2,由于 MinGW 万年不更新,MSYS 更是,Cygwin的许多新功能 MSYS 没有同步过来,于是 Alex 等人建立了新一代的 MSYS 项目。仍然是 fork 了 Cygwin(较新版),但有个更优秀的包管理器 pacman,有活跃的开发者跟用户组,有大量预编译的软件包(虽然肯定没有Cygwin多)……对于不喜欢庞大的 Cygwin 的用户而言,推荐试试 msys2。

区别(小结):Cygwin是模拟 POSIX 系统,源码移植 Linux 应用到 Windows 下;MinGW 是用于开发 Windows 应用的开发环境。
联系:均提供了部分 Linux 下的应用,多跑在 Windows 上;MinGW 作为 Cygwin 下的软件包,可以在 Cygwin 上运行。

 

 
posted @ 2020-02-08 11:42  wdliming  阅读(2780)  评论(0编辑  收藏  举报