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的安裝程式是圖形介面,原則上只要一直按Next
(下一步)按鈕直到安裝結束即可。
MSYS2預設的安裝目錄是C:\msys64
。
認識家目錄
使用MSYS預設的捷徑(MSYS2 MSYS
、MSYS2 MINGW32
、MSYS2 MINGW64
)來執行MSYS的終端機,都會先進入目前使用者的家目錄。
家目錄在POSIX環境中的路徑為/home/Windows的使用者名稱
。目前工作目錄的路徑可以在終端機內使用「pwd」指令來查看。
如果要查看目前工作目錄對應Windows環境的檔案路徑,可以再對pwd
指令加上-W
選項,如下:
在MSYS2所建構出來的POSIX環境中,我們可以直接使用Windows原本的檔案路徑(例如:C:\path\to\file
),但也可以使用POSIX的路徑來表示Windows的檔案路徑(例如:/c/path/to/file
)。如果要使用Windows的檔案路徑的話,要注意反斜線\
是否會被當作是跳脫字元。
更新MSYS2
在安裝MSYS2後,先更新一下MSYS2的套件吧!在終端機中輸入以下指令,即可更新MSYS2的套件:
更新到一半時,MSYS2可能會要求使用者要直接關閉MSYS2。如下圖,輸入y
,然後按下Enter
確認後即可安全關閉。
關閉MSYS2後,重新開啟MSYS2的終端機,並輸入以下指令:
接著繼續把套件的更新跑完。
安裝文字介面下的純文字編輯器─vim
MSYS2似乎並沒有內建任何的純文字編輯器,先用pacman
安裝一個吧!以vim為例,可以使用以下指令來安裝vim:
個人化vim:
安裝MinGW
MSYS2的安裝程式並沒有自帶MinGW,如果要使用MinGW的話,可以在終端機執行以下指令:
直接按下Enter來安裝全部相關套件。
上述安裝的MinGW是64位元版本的,如果有需要安裝32位元版本的MinGW,可以在終端機執行以下指令:
安裝MinGW後,就可以利用MSYS2預設的捷徑(MSYS2 MSYS
、MSYS2 MINGW32
、MSYS2 MINGW64
)來切換終端機的環境了!
不過其實也不一定要在MSYS2中使用MinGW,文章一開始便有提到,MinGW只是用來編譯能在Windows作業系統中執行的程式的工具鏈而已,在MSYS2外面的環境也是可以使用MSYS2環境下安裝的MinGW。在MSYS2環境下安裝的MinGW會被放置在MSYS2目錄中的mingw32
或是mingw64
目錄下,這個就是MinGW工具鏈的sysroot。