Cygwin 與 MinGW/MSYS/MSYS2,如何選擇?甚至還有GNU utilities for Win32

Cygwin與MinGW/MSYS,如何選擇?php

  • 2012-11-03更新:加入 MSYS 的內容。
  • 2013-10-15更新:修改表格格式,加入介紹連接。
  • 2014-12-17更新:加入 MSYS2 的內容。

什麼是Cygwin和MinGW?請看這篇:Msys/MinGW與Cygwin/gcchtml

在沒法徹底轉換到Linux系統的前提下,我一直在 Cygwin 下工做,使用全套的Linux移植工具,學習Bash編程。git

但Cygwin因爲工做在模擬模式下,速度較慢,相比而言, MinGW 就要快很多。github

下面是我選擇的對比:shell

特色 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 。

貼一張運行截圖:

msys2-curl


2015-10-30 更新:

若是不肯意使用 Cygwin 或者 MinGW 這種 」重型「 的 port,又喜歡 unix 下的工具鏈,那麼能夠嘗試一下下面幾個原生移植工具集:

https://blog.zengrong.net/post/1557.html

相關文章
相關標籤/搜索