什麼是Cygwin和MinGW?請看這篇:Msys/MinGW與Cygwin/gcc。html
在沒法徹底轉換到Linux系統的前提下,我一直在 Cygwin 下工做,使用全套的Linux移植工具,學習Bash編程。git
但Cygwin因爲工做在模擬模式下,速度較慢,相比而言, MinGW 就要快很多。github
特色 | 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次 | 支持中文顯示和輸入法,中文幫助系統和中文提示(部分軟件) |
運行速度 | 慢 | 快 | 快 |
Git for Windows和msysGit是創建在MinGW/MSYS的基礎之上的。但若是已經安裝過MinGW/MSYS,但願在已有的MinGW/MSYS上得到Git的功能,則會比較麻煩,詳見下方的2篇文章:編程
另外,在安裝msysGit的時候,要注意cygwin的bin目錄不能位於PATH環境變量中。不然msysGit會拒絕安裝。windows
最終,我仍是決定繼續Cygwin。git、Vim和中文是主要緣由。bash
2014-12-17 更新:app
這段時間嘗試了 MSYS2 ,發現它已經能知足我上面列出的全部需求。目前我已經刪除了 Cygwin ,改用 MSYS2 。curl
下面是 MSYS2 的官方介紹:
MSYS2 is an updated, modern version of MSYS, both of which are Cygwin (POSIX compatibility layer) forks with the aim of better interoperability with native Windows software.
The name is a contraction of Minimal SYStem 2, and aims to provide support to facilitate using the bash shell, Autotools, revision control systems and the like for building native Windows applications using MinGW-w64 toolchains.
目前碰到的問題,是 Python pip 在 MSYS2 下沒法運行。但我可使用 Windows 版本的 Python 。
貼一張運行截圖:
2015-10-30 更新:
若是不肯意使用 Cygwin 或者 MinGW 這種 」重型「 的 port,又喜歡 unix 下的工具鏈,那麼能夠嘗試一下下面幾個原生移植工具集:
https://blog.zengrong.net/post/1557.html