msys2安装总结
Posted codeworkerliming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了msys2安装总结相关的知识,希望对你有一定的参考价值。
以前一直使用本地gcc for windows unix for windows的软件,这些软件都是已经编译好的,可以直接在Windows下运行的,而且如果在环境变量中添加了,就可以在cmd中直接使用,和linux下差不多,但还是有点区别
网上偶然看到了
msys2的这个软件包,就去了解了。
区别如下:
这个是https://blog.zengrong.net/post/cygwin_and_mingw/网站上面摘录的,可见我们太长使用的mingw,其实仅仅是仿真linux环境中的一种方式,而且是比较古老的方式了,目前来看,msys2更新比较多,因此就尝试了。
特点 | Cygwin | MinGW/MSYS | MSYS2 |
---|---|---|---|
是否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 软件。
-
安装方便
-
自带 pacman 管理,可以使用 pkgtool 来 makepkg
-
较快的源速度(可以修改源地址)
-
自带软件和库较全而且比较新
-
使用mingw-w64工具链,可以编译32位或64位代码(需要自行安装)
-
中文支持好,可以直接输入和浏览中文目录
可以看出,msys2还移植了arch的软件管理包,pacman,这个就是不同的linux发行本,不同的软件管理包一样,Ubuntu系列是apt,还有更加新的,具体忘记了,rethat是yum等。使用方式大同小异。
如果不愿意使用 Cygwin 或者 MinGW 这种 ”重型“ 的 port,又喜欢 unix 下的工具链,那么可以尝试一下下面几个原生移植工具集:
- GNU utilities for Win32
- CoreUtils for Windows 或者 完整的 package
- dd for windows
- Unix ports - WHICH, TEE & CUT
以前我还使用了上面的几个软件,上面几个是软件,和上面三个大平台是有区别的。
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 上运行。
以上是关于msys2安装总结的主要内容,如果未能解决你的问题,请参考以下文章
安装 msys2 并运行“pacman -Syuu”后如何解决冲突?