使用MinGW在Windows上使用GNU
在 Windows 上安裝 GNU 編譯器集合(gcc)和其他 GNU 組件來啟用 GNU Autotools。
如果你是一名使用 Windows 的黑客,你不需要專有應(yīng)用來編譯代碼。借助 Minimalist GNU for Windows(MinGW)項(xiàng)目,你可以下載并安裝 GNU 編譯器集合(GCC)以及其它幾個基本的 GNU 組件,以在 Windows 計(jì)算機(jī)上啟用 GNU Autotools。
安裝 MinGW
安裝 MinGW 的最簡單方法是通過 mingw-get,它是一個圖形用戶界面 (GUI) 應(yīng)用,可幫助你選擇要安裝哪些組件,并讓它們保持最新。要運(yùn)行它,請從項(xiàng)目主頁下載 mingw-get-setup.exe。像你安裝其他 EXE 一樣,在向?qū)е袉螕敉瓿砂惭b。
Installing mingw-get
在 Windows 上安裝 GCC
目前為止,你只安裝了一個程序,或者更準(zhǔn)確地說,一個稱為 mingw-get 的專用的包管理器。啟動 mingw-get 選擇要在計(jì)算機(jī)上安裝的 MinGW 項(xiàng)目應(yīng)用。
首先,從應(yīng)用菜單中選擇 mingw-get 啟動它。
Installing GCC with MinGW
要安裝 GCC,請單擊 GCC 和 G++ 包來標(biāo)記要安裝 GNU C、C++ 編譯器。要完成此過程,請從 mingw-get 窗口左上角的安裝菜單中選擇應(yīng)用更改。
安裝 GCC 后,你可以使用完整路徑在 PowerShell 中運(yùn)行它:
PS> C:\MinGW\bin\gcc.exe --version
gcc.exe (MinGW.org GCC Build-x) x.y.z
Copyright (C) 2019 Free Software Foundation, Inc.
在 Windows 上運(yùn)行 Bash
雖然它自稱 “minimalist”(最小化),但 MinGW 還提供一個可選的 Bourne shell 命令行解釋器,稱為 MSYS(它代表最小系統(tǒng))。它是微軟的 cmd.exe
和 PowerShell 的替代方案,它默認(rèn)是 Bash。除了是(自然而然的)最流行的 shell 之一外,Bash 在將開源應(yīng)用移植到 Windows 平臺時(shí)很有用,因?yàn)樵S多開源項(xiàng)目都假定了 POSIX 環(huán)境。
你可以在 mingw-get GUI 或 PowerShell 內(nèi)安裝 MSYS:
PS> mingw-get install msys
要嘗試 Bash,請使用完整路徑啟動它:
PS> C:\MinGW\msys/1.0/bin/bash.exe
bash.exe-$ echo $0
"C:\MinGW\msys/1.0/bin/bash.exe"
在 Windows 上設(shè)置路徑
你可能不希望為要使用的每個命令輸入完整路徑。將包含新 GNU 可執(zhí)行文件的目錄添加到 Windows 中的路徑中。需要添加兩個可執(zhí)行文件的根目錄:一個用于 MinGW(包括 GCC 及其相關(guān)工具鏈),另一個用于 MSYS(包括 Bash、GNU 和 BSD 項(xiàng)目中的許多常用工具)。
若要在 Windows 中修改環(huán)境,請單擊應(yīng)用菜單并輸入 env
。
Edit your env
這將打開“首選項(xiàng)”窗口。點(diǎn)擊窗口底部附近的“環(huán)境變量”按鈕。
在“環(huán)境變量”窗口中,雙擊底部面板中的“路徑”選區(qū)。
在“編輯環(huán)境變量”窗口中,單擊右側(cè)的“新增”按鈕。創(chuàng)建一個新條目 C:\MinCW\msys\1.0\bin
,然后單擊 “確定”。以相同的方式創(chuàng)建第二條 C:\MinGW\bin
,然后單擊 “確定”。
Set your env
在每個首選項(xiàng)窗口中接受這些更改。你可以重啟計(jì)算機(jī)以確保所有應(yīng)用都檢測到新變量,或者只需重啟 PowerShell 窗口。
從現(xiàn)在開始,你可以調(diào)用任何 MinGW 命令而不指定完整路徑,因?yàn)橥暾窂轿挥?PowerShell 繼承的 Windows 系統(tǒng)的 %PATH%
環(huán)境變量中。
Hello world
你已經(jīng)完成設(shè)置,因此可以對新的 MinGW 系統(tǒng)進(jìn)行小測試。如果你是 Vim 用戶,請啟動它,然后輸入下面的 “hello world” 代碼:
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
cout << "Hello open source." << endl;
return 0;
}
將文件保存為 hello.cpp
,然后使用 GCC 的 C++ 組件編譯文件:
PS> gcc hello.cpp --output hello
最后,運(yùn)行它:
PS> .\a.exe
Hello open source.
PS>
MinGW 的內(nèi)容遠(yuǎn)不止我在這里所能介紹的。畢竟,MinGW 打開了一個完整的開源世界和定制代碼的潛力,因此請充分利用它。對于更廣闊的開源世界,你還可以試試 Linux。當(dāng)所有的限制都被消除后,你會驚訝于可能的事情。但與此同時(shí),請?jiān)囋?MinGW,并享受 GNU 的自由。