前置说明
MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境。MinGW 收集了一系列免费的Windows 使用的头文件和库文件;同时整合了GNU ( http://www.gnu.org/ )的工具集,特别是GNU 程序开发工具,如经典gcc, g++, make等。MinGW是完全免费的自由软件,它在Windows平台上模拟了Linux下GCC的开发环境,为C++的跨平台开发提供了良好基础支持,为了在Windows下工作的程序员熟悉Linux下的C++工程组织提供了条件。(来自于之前转载文章:https://blog.csdn.net/k1988/article/details/4375382)
MSYS的全称叫Minimal SYStem,是MinGW的一个子系统,是一套运行在Windows上的bash,也就是运行在Win上的Linux Terminal [1]。这个比较好理解,其实就是在Win上使用Linux的命令行进行操作,可以代替cmd来使用。对一些GNU的开源软件,MSYS可能是必需的,因为它们通常需要./configure然后make才能运行(学Linux的童鞋应该非常熟悉这个流程了)[2]。我们将MSYS和MinGW配合使用就可以打造出一个Win下的GNU命令行终端和编译系统。
有一点需要说明的是,MinGW和MSYS都是一套组件而不是一个单独的程序。我们需要下载两者的各组件的压缩包来完成安装和配置。组件的意义在于,我们可以下载需要的部分来配置一个想要的系统,比如不搞编译器设计的童鞋可能不需要flex和bison组件(用来词法和语法分析的),而automake工具也可以在需要的时候才安装,这类似于Linux下环境的配置。知道了这些,我们就可以开始MinGW和MSYS的安装了。
mingw为什么安装开发工具时自动安装了mysys
因为mingw相当于只移植了部分工具链(比如gcc)为windows原生程序,而仿linux环境的其它功能由mysys提供。
如果有其它仿linux的命令行环境,也可以在其它环境里使用mingw。
为什么 mingw和mysys中各有一套:autoconf、automake等
mingw按各种网上教程使用mingw-get-setup.exe进行安装,后续可以通过安装目录下的 <Mingw>/bin/mingw-get.exe来新增组件。
在Mingw installation Manager中分别显示有Mingw和Mysys的包。里面都有automake等开发工具链。
image.png
image.png
如果说mingw下的automake是为了在windows命令行下直接使用,但<Mingw>/bin/autoconf等程序没有.exe后缀,在cmd中也不能直接执行。
最后详细看看下面的“Description”中发现,Mysy中的那些autoconf不是给普通用户编译代码用的,而用于编译mysys中的组件(mysys系统开发)使用的。
网友评论