由于原來寫 C/C++ 一直使用的 VS 2015,直接自帶編譯環(huán)境等,但是 VS 2015 太費(fèi)內(nèi)存,于是直接裝 GCC,用 atom 寫代碼,gcc 編譯也是不錯(cuò)的選擇嘛。
一、什么是 GCC
GCC 是 GNU 編譯器套裝的簡(jiǎn)稱(GNU Compiler Collection),一套編程語言編譯器,以 GPL 及 LGPL 許可證所發(fā)行的自由軟件,也是 GNU 項(xiàng)目的關(guān)鍵部分,也是 GNU 工具鏈的主要組成部分之一。GCC(特別是其中的 C 語言編譯器)也常被認(rèn)為是跨平臺(tái)編譯器的事實(shí)標(biāo)準(zhǔn)。
二、MinGW 和Cygwin
由于 GCC 適用于 Linux/UNIX 系統(tǒng),Windows 系統(tǒng)本身不支持 GCC,所以就有了 MinGW 和 Cygwin 的誕生,它們兩都是把 GNU 從 Linux/UNIX 到 Windows 的移植應(yīng)用。
MinGW, a contraction of "Minimalist GNU for Windows", is a minimalist development environment for native Microsoft Windows applications.
這是 MinGW 的官方解釋,MinGW 是 “Minimalist GNU for Windows” 的縮寫,是非常簡(jiǎn)潔 Microsoft Windows 應(yīng)用開發(fā)環(huán)境。
Cygwin is:
- a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
- a DLL (cygwin1.dll) which provides substantial POSIX API functionality.
關(guān)于 MinGW 和 Cygwin 的區(qū)別可以參考一下下面這篇知乎回答(PS:我也沒看懂0.0)。
知乎:Cygwin 和MinGW 的區(qū)別與聯(lián)系是怎樣的?
三、安裝 MinGw
1. 下載 MinGW
首先我們先下載 MinGW 的安裝包。
2. 安裝
下載完畢后,我們會(huì)得到一個(gè) mingw-get-setup.exe 名字的安裝包,雙擊打開即可安裝。

安裝目錄可以自己選擇,完后選擇 Continue 按鈕安裝,安裝完后會(huì)在桌面得到一個(gè) MinGW Installer 的可執(zhí)行程序,如圖所示:

按照上圖選擇勾選這四項(xiàng),完后選擇 Installation --> Apply changes,如圖所示:

完后選擇 Apply 按鈕即可安裝。
3. 配置環(huán)境變量
接下來便是環(huán)境變量的配置,找到 MinGW 的安裝目錄,進(jìn)入 C:\MinGW\msys\1.0 路徑,有一個(gè) msys.bat 文件,它就是我們運(yùn)行 GCC 的 bat 文件,右鍵發(fā)送到桌面快捷方式,方便以后打開,雙擊打開,完后 輸入 gcc,會(huì)提醒我們查找不到這個(gè)命令。

出現(xiàn)上面情況的原因是沒有配置環(huán)境變量,進(jìn)入 C:\MinGW\msys\1.0\etc,有一個(gè) profile 的文件,使用記事本編輯打開,在末尾追加一句:
export PATH=/c/MinGWbin:$PATH
這里的路徑就是 MinGW 的安裝路徑。完后重新打開 msys.bat,輸入 gcc,已經(jīng)成功配置環(huán)境變量:

完后可以創(chuàng)建一個(gè)簡(jiǎn)單的 C 程序測(cè)試一下:

安裝 Cygwin
1. 下載 Cygwin
首先先下載 Cygwin 的安裝包
2. 安裝
下載完畢后,我們會(huì)得到一個(gè) setup-x86_64.exe 名字的安裝包,雙擊打開即可安裝。
具體安裝過程我就不再贅述了,一路 next 就可以,其中部分個(gè)性化設(shè)置因個(gè)人而異。其中有一步需要選擇代理和鏡像。如圖:

這里我們選擇默認(rèn)的 Direct Connection 直接連接,然后點(diǎn)擊下一步。

這里我選擇了國(guó)內(nèi)的鏡像,完后選擇下一步,下載完畢后會(huì)進(jìn)入下圖所示的一個(gè)界面。

我們?cè)?Search 欄里 輸入 gcc 完后進(jìn)行搜索,如上圖所示,在 Devel 選項(xiàng)里選擇圖中的兩項(xiàng)即可,完后點(diǎn)擊下一步即可下載安裝。
安裝完畢后會(huì)在桌面創(chuàng)建一個(gè) Cygwin64 Terminal 的可執(zhí)行程序,它就是 Cygwin 的控制臺(tái)程序。打開后,我們同樣編譯一下安裝 MinGW 時(shí)寫的測(cè)試程序。

我們發(fā)現(xiàn)運(yùn)行 gcc test.c 命令時(shí)創(chuàng)建了一個(gè) a.exe 的文件,運(yùn)行它,同樣輸出了測(cè)試結(jié)果。
MinGW 和 Cygwin 的具體區(qū)別
在上安裝 MinGW 和 Cygwin 時(shí)我們運(yùn)行同一個(gè)測(cè)試程序,分別生成了 test.exe 和 a.exe 兩個(gè)可執(zhí)行程序,那么它們具體有什么區(qū)別呢,我們?cè)?Windows 系統(tǒng)自帶的控制臺(tái)中分別來運(yùn)行它們。

當(dāng)我們運(yùn)行 MinGW 編譯生成的 test.exe 時(shí),控制臺(tái)成功輸出了 test mingw,然而當(dāng)我們運(yùn)行 Cygwin 編譯生成的 a.exe 時(shí),卻出現(xiàn)了上圖所示的錯(cuò)誤,這是什么原因呢?(我也很懵逼0.0)
原來,我們的計(jì)算機(jī)查找不到 cygwin1.dll 這個(gè)庫,這個(gè)庫是 Cygwin 用來模擬 Linux 環(huán)境的一個(gè)庫,它可以把 Linux 的 API 映射帶 Windows 下來執(zhí)行 Windows 程序,如果我們想要執(zhí)行它,只需要將 Cygwin 的目錄添加到環(huán)境變量即可。我們將 Cygwin 的目錄添加到 PATH 環(huán)境變量即可。

個(gè)人博客:renzhe.name
- 轉(zhuǎn)載請(qǐng)注明出處。