前置說(shuō)明
MinGW 提供了一套簡(jiǎn)單方便的Windows下的基于GCC 程序開(kāi)發(fā)環(huán)境。MinGW 收集了一系列免費(fèi)的Windows 使用的頭文件和庫(kù)文件;同時(shí)整合了GNU ( http://www.gnu.org/ )的工具集,特別是GNU 程序開(kāi)發(fā)工具,如經(jīng)典gcc, g++, make等。MinGW是完全免費(fèi)的自由軟件,它在Windows平臺(tái)上模擬了Linux下GCC的開(kāi)發(fā)環(huán)境,為C++的跨平臺(tái)開(kāi)發(fā)提供了良好基礎(chǔ)支持,為了在Windows下工作的程序員熟悉Linux下的C++工程組織提供了條件。(來(lái)自于之前轉(zhuǎn)載文章:https://blog.csdn.net/k1988/article/details/4375382)
MSYS的全稱叫Minimal SYStem,是MinGW的一個(gè)子系統(tǒng),是一套運(yùn)行在Windows上的bash,也就是運(yùn)行在Win上的Linux Terminal [1]。這個(gè)比較好理解,其實(shí)就是在Win上使用Linux的命令行進(jìn)行操作,可以代替cmd來(lái)使用。對(duì)一些GNU的開(kāi)源軟件,MSYS可能是必需的,因?yàn)樗鼈兺ǔP枰?/configure然后make才能運(yùn)行(學(xué)Linux的童鞋應(yīng)該非常熟悉這個(gè)流程了)[2]。我們將MSYS和MinGW配合使用就可以打造出一個(gè)Win下的GNU命令行終端和編譯系統(tǒng)。
有一點(diǎn)需要說(shuō)明的是,MinGW和MSYS都是一套組件而不是一個(gè)單獨(dú)的程序。我們需要下載兩者的各組件的壓縮包來(lái)完成安裝和配置。組件的意義在于,我們可以下載需要的部分來(lái)配置一個(gè)想要的系統(tǒng),比如不搞編譯器設(shè)計(jì)的童鞋可能不需要flex和bison組件(用來(lái)詞法和語(yǔ)法分析的),而automake工具也可以在需要的時(shí)候才安裝,這類似于Linux下環(huán)境的配置。知道了這些,我們就可以開(kāi)始MinGW和MSYS的安裝了。
mingw為什么安裝開(kāi)發(fā)工具時(shí)自動(dòng)安裝了mysys
因?yàn)閙ingw相當(dāng)于只移植了部分工具鏈(比如gcc)為windows原生程序,而仿linux環(huán)境的其它功能由mysys提供。
如果有其它仿linux的命令行環(huán)境,也可以在其它環(huán)境里使用mingw。
為什么 mingw和mysys中各有一套:autoconf、automake等
mingw按各種網(wǎng)上教程使用mingw-get-setup.exe進(jìn)行安裝,后續(xù)可以通過(guò)安裝目錄下的 <Mingw>/bin/mingw-get.exe來(lái)新增組件。
在Mingw installation Manager中分別顯示有Mingw和Mysys的包。里面都有automake等開(kāi)發(fā)工具鏈。


如果說(shuō)mingw下的automake是為了在windows命令行下直接使用,但<Mingw>/bin/autoconf等程序沒(méi)有.exe后綴,在cmd中也不能直接執(zhí)行。
最后詳細(xì)看看下面的“Description”中發(fā)現(xiàn),Mysy中的那些autoconf不是給普通用戶編譯代碼用的,而用于編譯mysys中的組件(mysys系統(tǒng)開(kāi)發(fā))使用的。