GNU是一個Unix-like的作業系統,經常與Linux核心搭配在一起(GNU/Linux即為一般我們所說的「Linux作業系統」)。有許多軟體開發的程式都是運作在GNU的環境中,無法直接在Windows作業系統中使用,就得依靠如Cygwin和MinGW(Minimalist GNU for Windows)等軟體在Windows作業系統中,建立出GNU程式的開發環境。嚴格來說,Cygwin和MinGW並不是同一個範圍的東西,Cygwin模擬出POSIX環境,能夠編譯並運行大部分的Unix-like程式。而MinGW只是用來編譯能在Windows作業系統中執行的程式的工具鏈(toolchain)而已,跟MSVC才是同個範圍的。由於Windows內建的命令提示字元(cmd)功能實在是太爛,因此MinGW也有自己的一套文字命令工具,那就是「MSYS」(Minimal SYStem)。



MSYS其實也是從Cygwin改版過來的,但它更在乎與GNU相關的事物,也因此沒有如Cygwin那樣肥大的缺點。而因為MSYS的長期停止更新,MSYS2後來便出現了。MSYS2繼承了MSYS的理念,整合了32位元和64位元的MinGW,並使用「pacman」來管理套件,讓原本沒有什麼擴充能力的MSYS,也可以自由且迅速地安裝各式各樣的套件了。

MSYS2的官方網站:

安裝MSYS2

到MSYS2的官方網站上下載MSYS2的安裝程式後,就執行安裝程式吧!

msys2

MSYS2的安裝程式是圖形介面,原則上只要一直按Next(下一步)按鈕直到安裝結束即可。

msys2

msys2

msys2

msys2

MSYS2預設的安裝目錄是C:\msys64

認識家目錄

使用MSYS預設的捷徑(MSYS2 MSYSMSYS2 MINGW32MSYS2 MINGW64)來執行MSYS的終端機,都會先進入目前使用者的家目錄。

msys2

家目錄在POSIX環境中的路徑為/home/Windows的使用者名稱。目前工作目錄的路徑可以在終端機內使用「pwd」指令來查看。

msys2

如果要查看目前工作目錄對應Windows環境的檔案路徑,可以再對pwd指令加上-W選項,如下:

pwd -W

msys2

在MSYS2所建構出來的POSIX環境中,我們可以直接使用Windows原本的檔案路徑(例如:C:\path\to\file),但也可以使用POSIX的路徑來表示Windows的檔案路徑(例如:/c/path/to/file)。如果要使用Windows的檔案路徑的話,要注意反斜線\是否會被當作是跳脫字元。

更新MSYS2

在安裝MSYS2後,先更新一下MSYS2的套件吧!在終端機中輸入以下指令,即可更新MSYS2的套件:

pacman -Syu

msys2

msys2

更新到一半時,MSYS2可能會要求使用者要直接關閉MSYS2。如下圖,輸入y,然後按下Enter確認後即可安全關閉。

msys2

關閉MSYS2後,重新開啟MSYS2的終端機,並輸入以下指令:

pacman -Su

接著繼續把套件的更新跑完。

msys2

msys2

安裝文字介面下的純文字編輯器─vim

MSYS2似乎並沒有內建任何的純文字編輯器,先用pacman安裝一個吧!以vim為例,可以使用以下指令來安裝vim:

pacman -S vim

msys2

個人化vim:

安裝MinGW

MSYS2的安裝程式並沒有自帶MinGW,如果要使用MinGW的話,可以在終端機執行以下指令:

pacman -S mingw-w64-x86_64-toolchain

msys2

直接按下Enter來安裝全部相關套件。

msys2

msys2

上述安裝的MinGW是64位元版本的,如果有需要安裝32位元版本的MinGW,可以在終端機執行以下指令:

pacman -S mingw-w64-i686-toolchain

安裝MinGW後,就可以利用MSYS2預設的捷徑(MSYS2 MSYSMSYS2 MINGW32MSYS2 MINGW64)來切換終端機的環境了!

msys2

不過其實也不一定要在MSYS2中使用MinGW,文章一開始便有提到,MinGW只是用來編譯能在Windows作業系統中執行的程式的工具鏈而已,在MSYS2外面的環境也是可以使用MSYS2環境下安裝的MinGW。在MSYS2環境下安裝的MinGW會被放置在MSYS2目錄中的mingw32或是mingw64目錄下,這個就是MinGW工具鏈的sysroot。