Windows系統下安裝配置 MinGW-w64 開發環境

MinGW、MinGW-w64 簡介

MinGW(全稱爲,Minimalist GNU for Windows),它實際上是將經典的開源 C語言編譯器 GCC 移植到了 Windows 平臺下,並且包含了 Win32API ,因此可以將源代碼編譯爲可在 Windows 中運行的可執行程序。而且還可以使用一些 Windows 平臺不具備的,但是Linux平臺具備的開發工具和API函數。用一句話來概括就是:MinGW 就是 GCC 的 Windows 版本 。

MinGW-w64原本是MinGW項目的分支,後來成爲獨立發展得項目,由於僅有MinGW-w64被GCC官方所支持, 而MinGW早已停止更新, 因此推薦使用MinGW-w64。

MinGW-w64 與 MinGW 的區別在於 MinGW 只能編譯生成32位可執行程序,而 MinGW-w64 則可以編譯生成 64位 或 32位 可執行程序。

獲取MinGW-w64

MinGW-w64官網:http://mingw-w64.org/doku.php/start

本人下載的是v7.0.0版本的,也是目前最新版的,發佈日期:2019-11-10。

下載鏈接:https://sourceforge.net/projects/mingw-w64/files/

下載最新版的鏈接:https://sourceforge.net/projects/mingw-w64/files/latest/download

我們在Windows系統下可以選擇在線安裝的方式,對應下載的文件是:MinGW-W64-install.exe

<說明> mingw-w64-install.exe 安裝文件,它本質上是一個下載程序,會根據我們之後的一些設置,選擇性的下載相應的組件,並將它們組織在一起。所以,運行前要確定網絡通暢,而且你有足夠的時間,因爲根據你的網速,它可能需要花費一定的時間來下載。
操作:用鼠標雙擊運行 mingw-w64-install.exe 。
注意:如果出現無法運行,或者安裝出錯,你可以右鍵點擊它,並在彈出窗口中選擇“以管理員身份運行”選項,重新運行 mingw-w64-install.exe ,基本可以解決大部分問題。

安裝MinGW-w64

方式1—在線安裝

一、以“管理員身份運行” mingw-w64-install.exe 文件,它會從服務器獲取MinGW-w64 信息。

說明:這裏程序正在鏈接服務器,以便獲取存儲在倉庫中的 MinGW-w64 的文件信息。
操作:只需等待。

二、MinGW-w64 版本選擇,如下圖所示:

mingw-w64版本選擇

說明:在這個界面上,可以根據所要搭建的開發環境,選擇對應的選項,從而下載所需的組件。

操作:依次選擇 Version、Architecture、Threads、Exception、Build revision 下拉列表中適當的選項,接下來將會詳細介紹這些選項。

version

version選項:指的是你選擇的GCC編譯器的版本,我選擇的是當前最新版本8.1.0,一般建議選擇最新的版本。

操作:選中 8.1.0即可。

Architecture

Architecture選項:指的是你的電腦的系統類型,i686表示的是32位的系統類型,x86_64表示的是64位的系統類型。我本人的電腦是64位的系統類型,所以選中x86_64。

Threads

Threads選項:指的是線程模型,posix/win32。

說明:

(1)POSIX(Portable Operating System Interface,可移植操作系統接口),它是UNIX系統的一個API設計標準,很多類UNIX系統也在支持兼容這個標準,如Linux操作系統。

(2)Win32,它是Windows系統下一個API設計標準,如果你是開發Windows平臺下的應用程序,就需要選擇Win32。

操作:本人是在Windows下開發Linux應用程序,所以選擇的是:posix。

Exception

Exception選項:指的是異常處理模型。i686系統架構有2種選擇:dwarf 和 sjlj。x86_64系統架構也有2種選擇:seh 和 sjlj。由於我選擇的是64位的系統架構,所以可供選擇的異常處理模式是:seh 和 sjlj。下面說明sjlj, seh, dwarf三者的區別:

在C++中有 try..throw..catch,當它執行這種結構時,它需要保存現場還原現場,而 sjlj, seh, dwarf 正是實現這類過程的三種方式。

sjlj 全稱是 SetJump / LongJump,前者設還原點,後者跳到還原點。可用於32位或者64位系統。

seh (Structured Exception Handling,結構化異常處理) 是 Borland 公司的,微軟買了其專利使用權,它利用了FS段寄存器,將還原點壓入棧,收到異常時再彈出。相較而言,sjlj 是 C 標準庫就有的東西,seh 在 2014 年前是有專利的,從性能上說 seh 比 sjlj 快。只用於64位系統。

dwarf 只支持32位系統 – 沒有永久的運行時間開銷 – 需要整個調用堆棧被啓用,這意味着exception不能被拋出,例如Windows系統DLL。

綜上所述:

【x86_64 64位】

1、seh 是新發明的,而 sjlj 則是古老的。只用於64位系統。

2、seh 性能比較好,但不支持 32位。 sjlj 穩定性好,支持 32位和64位。

因此,x86_64系統架構的推薦使用 seh 的異常處理模型。

【i686 32位】

1、dwarf 只支持32位,而sjlj 支持32位/64位,但是dwarf 的性能要優於 sjlj。

因此,i686系統架構的推薦使用 dwarf 的異常處理模型。

操作:我的電腦是x86_64系統架構的,所以我選中 seh。

【參考】https://wiki.qt.io/MinGW-64-bit

Build revision

Build revision選項:建立修訂。

操作:選擇默認選項,我的下拉菜單隻有 0 這一個選項,別無選擇了。

三、選擇 MinGW-w64 的安裝目錄

可以看到,默認安裝目錄是在C盤的C:\Program Files\mingw-w64文件夾下,而C盤是系統盤,按照一般的習慣,我們儘量不把應用軟件安裝在系統盤裏。因爲以前的電腦使用的是機械硬盤,而機械硬盤頻繁讀寫會降低效率,所以儘量將操作系統與應用軟件放在不同的硬盤分區下。當然,現在的電腦大部分都配備了固態硬盤(SSD),而且通常作爲系統盤來使用,因此已經沒有讀寫效率的問題了。所以如果你還在用機械鍵盤,就將 MinGW-w64 放到其他非系統盤裏,如果使用固態硬盤,則可以放在安裝程序提示的默認位置,或其他地方均可。

操作:將自定義的路徑直接複製到"Destination folder"下的文本框中,如下圖是我自定義的安裝路徑:

說明:界面中的 Space available 指的是你選擇的目錄,所在的硬盤分區的剩餘空間,而 MinGW-w64 至少會佔用 500 MB 的空間。Create shortcuts in Start Menu 是說在開始菜單創建 MinGW-w64 的快捷方式,一般默認勾選即可。
操作:確認安裝目錄沒問題後,點擊紅框中的“Next”按鈕,開始正式安裝 MinGW-w64 。

四、開始下載 MinGW-w64 安裝文件

說明:安裝程序開始連接服務器,並從中下載 MinGW-w64 的安裝文件,下載速度取決於你所在的網絡環境,下載所需的時間會有所不同,如果你有其他事情要做,可以點擊“Cancel”按鈕,取消本次安裝。
操作:只需耐心等待。

五、下載完成後,點擊Next按鈕,最後點擊Finish 按鈕,安裝完成。

方式2—離線安裝

方式1安裝方式,比較直觀,對於新手建議採用方式1來安裝mingw-w64,但是對網絡要求比較高。也可以採用直接下載對應的離線壓縮包文件,然後直接解壓即可。

下載鏈接:https://sourceforge.net/projects/mingw-w64/files/

以目前最新版的爲例,下載離線文件列表如下:

根據方式1上面的說明,選擇對應的離線壓縮包,我按照自己的需求,下載的是:x86_64-posix-seh版本的。下載完成後,直接解壓到指定的目錄下,會生成一個mingw64文件夾,本人的路徑是:D:\Program Files\mingw64,mingw64文件夾的樹型結構如下所示:

說明:這些子文件夾和Linux下/usr/local目錄下的結構很相似,這裏就不再做說明了。

配置MinGW-w64 開發環境

在電腦桌面,鼠標右擊桌面圖標【計算機】-->屬性-->高級系統設置-->高級-->環境變量,有用戶變量和系統變量。系統變量對所有用戶有效,建議只在用戶變量下進行配置。我的mingw64軟件安裝的路徑爲: D:\Program Files\mingw64

1、新建變量: PATH,變量值爲:D:\Program Files\mingw64\bin

2、新建變量:LIB,變量值爲:D:\Program Files\mingw64\lib

3、新建變量:INCLUDE,變量值爲:D:\Program Files\mingw64\include

<Tips> Windows下的環境變量名是不區分大小寫的,這點跟Linux系統是有所不同的,一般而言,是建議環境變量名使用大寫。

配置完成後,點擊“確定”按鈕,使其生效。按下Windows+X,點擊命令提示符,輸入:gcc -v,如果配置成功就會打印出gcc的配置和版本信息,如下圖所示:

說明:看打印的信息可以看到,我們使用的線程模型是:posix,gcc版本是8.1.0。

總結

至此,在Windows下安裝配置MinGW-w64已經完成,在接下來的開發中我們就可以使用GCC編譯器編譯源文件了。其中,編譯C源文件使用gcc命令,而編譯C++源文件則使用g++命令。

參考

MinGW-w64安裝教程—著名C/C++編譯器GCC的Windows版本(在線安裝方式)

在Windows中安裝MinGW-w64

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章