https://blog.csdn.net/u012294613/article/details/126525424?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-126525424-blog-103775488.235^v38^pc_relevant_sort&spm=1001.2101.3001.4242.1&utm_relevant_index=3
(如果你想要開發(fā)Windows程序需要選擇win32操作系統(tǒng)接口協(xié)議MinGW-w64適合學(xué)習(xí)時(shí)使用真正工作還是用VS2015更好)
https://blog.csdn.net/u012294613/article/details/126525424?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-126525424-blog-103775488.235^v38^pc_relevant_sort&spm=1001.2101.3001.4242.1&utm_relevant_index=3
MinGW-w64安裝教程——著名C/C++編譯器GCC的Windows版本
本文主要講述如何安裝 C語言 編譯器——MinGW-w64,特點(diǎn)是文章附有完整詳細(xì)的實(shí)際安裝過程截圖,文字反而起說明提示作用。
編寫本文的原因始于我的一個(gè)觀點(diǎn):圖片可以比文字傳達(dá)更多的信息,也能讓其他人更容易理解作者的意圖及思想。因此,我將安裝 MinGW-w64 的過程和步驟,編寫成了這篇以圖片為主的教程,為了讓看到這篇文章的任何人,都可以很容易按照圖片所示正確安裝 MinGW-w64。
我希望寫出一篇即使是⑨也可以看懂的 MinGW-w64 安裝教程。
一、什么是 MinGW-w64 ?
MinGW 的全稱是:Minimalist GNU on Windows 。它實(shí)際上是將經(jīng)典的開源 C語言 編譯器 GCC 移植到了 Windows 平臺下,并且包含了 Win32API ,因此可以將源代碼編譯為可在 Windows 中運(yùn)行的可執(zhí)行程序。而且還可以使用一些 Windows 不具備的,Linux平臺下的開發(fā)工具。一句話來概括:MinGW 就是 GCC 的 Windows 版本 。
以上是 MinGW 的介紹,MinGW-w64 與 MinGW 的區(qū)別在于 MinGW 只能編譯生成32位可執(zhí)行程序,而 MinGW-w64 則可以編譯生成 64位 或 32位 可執(zhí)行程序。
正因?yàn)槿绱?,MinGW 現(xiàn)已被 MinGW-w64 所取代,且 MinGW 也早已停止了更新,內(nèi)置的 GCC 停滯在了 4.8.1 版本,而 MinGW-w64 內(nèi)置的 GCC 則更新到了 6.2.0 版本。
二、為什么使用 MinGW-w64 ?
1. MinGW-w64 是開源軟件,可以免費(fèi)使用。
2. MinGW-w64 由一個(gè)活躍的開源社區(qū)在持續(xù)維護(hù),因此不會過時(shí)。
3. MinGW-w64 支持最新的 C語言 標(biāo)準(zhǔn)。
4. MinGW-w64 使用 Windows 的C語言運(yùn)行庫,因此編譯出的程序不需要第三方 DLL ,可以直接在 Windows 下運(yùn)行。
5. 那些著名的開源 IDE 實(shí)際只是將 MinGW-w64 封裝了起來,使它擁有友好的圖形化界面,簡化了操作,但內(nèi)部核心仍然是 MinGW-w64。
MinGW-w64 是穩(wěn)定可靠的、持續(xù)更新的 C/C++ 編譯器,使用它可以免去很多麻煩,不用擔(dān)心跟不上時(shí)代,也不用擔(dān)心編譯器本身有bug,可以放心的去編寫程序。
三、MinGW-w64 適合做什么?
對于熟悉 MinGW-w64 的高手而言,它可以編譯任何 C語言 程序。但對于一般人來說,MinGW-w64 太過簡陋,連圖形用戶界面都沒有。這讓習(xí)慣使用鼠標(biāo)的人,感到很痛苦。雖然也可以通過一些配置,讓 MinGW-w64 擁有圖形用戶界面,但那個(gè)過程非常麻煩。
除此之外,編譯復(fù)雜的程序時(shí),還需要你會編寫 Makefile ,否則只能一個(gè)文件一個(gè)文件的編譯,可想而知會多么辛苦。
但對于初學(xué) C語言 的人來說,MinGW-w64 是正合適的編譯器,至少黑色的命令提示符界面很有編程的氣氛,感覺很酷。
在剛開始學(xué) C語言 時(shí),所有代碼通常都寫在一個(gè)文件中,只要輸入幾個(gè)簡單的命令,就能用 MinGW-w64 編譯成可執(zhí)行文件。雖然 VS2015 等編譯器,只要點(diǎn)擊下鼠標(biāo)就可以完成編譯,但它會自動生成一大堆工程文件,讓初學(xué)者摸不著頭腦。而 MinGW-w64 則只會生成一個(gè)可執(zhí)行文件。
如果對 MinGW-w64 和 VS2015 等編譯器進(jìn)行一下形容,那么 MinGW-w64 是手動的,而 VS2015 等編譯器則是自動的。因此 MinGW-w64 的編譯過程更加直觀容易理解,也比較適合C語言學(xué)習(xí)。
總而言之,對于一般人來說,MinGW-w64 適合學(xué)習(xí) C語言 時(shí)使用,真正工作還是用 VS2015 更好。當(dāng)然如果您是在 Linux 下工作,那么Code::Blocks可能是一個(gè)選擇,不過最大的可能是您必須習(xí)慣使用 GCC 來編譯程序。
四、下載和安裝 MinGW-w64
在開始安裝之前,請先確認(rèn)您滿足以下幾個(gè)條件。
1.您的電腦已經(jīng)連接到網(wǎng)絡(luò)。
2.您的電腦硬盤有500MB的剩余空間。
3.您現(xiàn)在有充足的時(shí)間。(受您當(dāng)前網(wǎng)速的影響,安裝過程可能會花費(fèi)10幾分鐘或1個(gè)小時(shí)以上的時(shí)間。)
如果您確認(rèn),您滿足了上述條件,那么就可以開始安裝 MinGW-w64 了。
注意:教程中的圖片都是實(shí)際安裝時(shí)的原比例截圖,如果您看不清圖片中的提示語,可以將圖片放大,不會影響清晰度。想要觀看大圖,只需點(diǎn)擊圖片,就會跳轉(zhuǎn)到原始尺寸的圖片頁面中。如果前面的方法失效,您仍然可以通過瀏覽器放大頁面的功能,放大圖片,例如在 Chrome 瀏覽器下,您可以按住 Ctrl 鍵,然后滾動鼠標(biāo)滾輪,即可放大頁面。
1.MinGW-w64官方網(wǎng)站首頁(http:///)
說明:MinGW-w64 官方網(wǎng)站的地址是:http:// ,首頁樣式如上圖所示。
操作:點(diǎn)擊紅框中的“Downloads”超鏈接,進(jìn)入 MinGW-w64 下載詳情頁面。
2.MinGW-w64下載詳情頁面
說明:這是 MinGW-w64 的下載詳情頁面。首先看到一個(gè)標(biāo)題為 Pre-built toolchains and packages 的列表,這里面是包含 MinGW-w64 及特定工具的整合包。我們這個(gè)教程只安裝 MinGW-w64 ,所以只需下載 MinGW-w64 即可。
操作:點(diǎn)擊紅框中的“SourceForge”超鏈接,就會進(jìn)入 SourceForge 中的 MinGW-w64 下載頁面。
3.SourceForge 中的 MinGW-w64 下載頁面
說明:MinGW-w64 的代碼和可執(zhí)行文件被托管存儲在 SourceForge 上,在這個(gè)頁面上就可以直接下載 MinGW-w64 了。MinGW-w64 是非常復(fù)雜的,編譯器大多都是如此,為了適應(yīng)各種操作系統(tǒng),它們的組件會存在各種不同的版本,以適應(yīng)不同的環(huán)境。所以,我們直接下載 MinGW-w64 的安裝程序,它會按照我們的需要,自動下載適合的組件,并將它們組織在一起。
操作:點(diǎn)擊紅框中的“Download mingw-w64-install.exe”超鏈接,將會下載這個(gè) MinGW-w64 自動安裝的程序。
4.等待 MinGW-w64 安裝程序開始下載
說明:5秒鐘之后,瀏覽器會自動下載 mingw-w64-install.exe 。
操作:只需等待。
注意:如果瀏覽器沒有自動下載,則可以點(diǎn)擊黃框中的“direct link”超鏈接,手動下載。如果下載速度非常慢,可以點(diǎn)擊綠框中的“mirror”超鏈接,選擇一個(gè)離自己近的鏡像網(wǎng)站,可能會獲得較高(無法保證)的下載速度。
5.正在下載 mingw-w64-intall.exe
說明:如果你的瀏覽器是 chrome ,那么在瀏覽器下部,會出現(xiàn)這樣一個(gè)下載標(biāo)簽。
操作:只需等待。
6.MinGW-w64 安裝程序
說明:這就是 MinGW-w64 的安裝程序。它本質(zhì)上是一個(gè)下載程序,會根據(jù)我們之后的一些設(shè)置,選擇性的下載相應(yīng)的組件,并將它們組織在一起。所以,運(yùn)行前要確定網(wǎng)絡(luò)通暢,而且你有足夠的時(shí)間,因?yàn)楦鶕?jù)你的網(wǎng)速,它可能需要花費(fèi)一定的時(shí)間來下載。
操作:用鼠標(biāo)雙擊運(yùn)行 mingw-w64-install.exe 。
注意:如果出現(xiàn)無法運(yùn)行,或者安裝出錯(cuò),你可以右鍵點(diǎn)擊它,并在彈出窗口中選擇“以管理員身份運(yùn)行”選項(xiàng),重新運(yùn)行 mingw-w64-install.exe ,基本可以解決大部分問題。
7.MinGW-w64 安裝程序歡迎界面
說明:歡迎使用 MinGW-w64 在線安裝程序。
操作:點(diǎn)擊紅框中的 “Next” 按鈕,將會進(jìn)入下一步安裝步驟。
8.從服務(wù)器獲取 MinGW-w64 文件信息
說明:這里程序正在鏈接服務(wù)器,以便獲取存儲在倉庫中的 MinGW-w64 的文件明細(xì)。
操作:只需等待。
9.MinGW-w64 版本選擇
說明:在這個(gè)界面,你可以根據(jù)所要搭建的開發(fā)環(huán)境,選擇不同的選項(xiàng),從而下載所需的組件。
操作:選擇 Version、Architecture、Threads、Exception、Build revision 下拉列表中適當(dāng)?shù)倪x項(xiàng),接下來將會詳細(xì)介紹這些選項(xiàng)。
10.選擇 gcc 版本
說明:Version 指的是 gcc 的版本,如果沒有特殊的需求,一般選擇最高的版本號即可。
操作:在這個(gè)版本中,最高版本是 6.2.0 ,選中它即可。
11.選擇電腦系統(tǒng)架構(gòu)
說明:Architecture 是指電腦系統(tǒng)是 32位 還是 64位,根據(jù)你的電腦系統(tǒng)做出對應(yīng)選擇。
操作:我的電腦系統(tǒng)是 64位 的,所以我選擇了 x86_64,如果你是 32位 系統(tǒng),則選擇 i686 即可。
12.選擇操作系統(tǒng)接口協(xié)議
說明:這個(gè)世界上只有兩種操作系統(tǒng),符合 posix 協(xié)議的,和 Windows 。如這個(gè)笑話所說的,如果你想要開發(fā) Windows 程序,需要選擇 win32 ,而開發(fā) Linux、Unix、Mac OS 等其他操作系統(tǒng)下的程序,則需要選擇 posix 。
操作:我只開發(fā)在 Windows 下運(yùn)行的程序,所以選擇了 win32 。
13.選擇異常處理模型(64位)
說明:異常處理在開發(fā)中非常重要,你在開發(fā)的過程中,大部分的時(shí)間會耗在處理各種異常情況上。如果你之前選擇了 64位,則這里有兩個(gè)異常處理模型供你選擇,seh 是新發(fā)明的,而 sjlj 則是古老的。seh 性能比較好,但不支持 32位。 sjlj 穩(wěn)定性好,支持 32位。
操作:我這里選擇了 seh 。
14.選擇異常處理模型(32位)
說明:選擇了 32位 后,則可以用 dwarf 和 sjlj 兩種異常處理模型。同樣的,dwarf 的性能要優(yōu)于 sjlj ,可以它不支持 64位 。
操作:建議選擇 dwarf 。
15.建立修訂
說明:暫時(shí)沒弄明白是做什么的。(知道的人請留言)
操作:選擇默認(rèn)選項(xiàng)。
16.MinGW-w64 版本選擇完成
說明:綠框中就是我的 MinGW-w64 安裝配置單,gcc 是 6.2.0 版本,系統(tǒng)架構(gòu)是 64位,接口協(xié)議是 win32,異常處理模型是 seh,Build revision 是 1 。
操作:點(diǎn)擊紅框中的“Next”按鈕,進(jìn)入下一個(gè)步驟。
17.選擇 MinGW-w64 的安裝目錄
說明:在這里選擇 MinGW-w64 將要安裝到哪個(gè)目錄中去。安裝程序默認(rèn)會將 MinGW-w64 安裝在 C盤 ,而在 Windows 操作系統(tǒng)中 C盤 是系統(tǒng)盤,操作系統(tǒng)會被安裝在這個(gè)盤里,而按照一般的習(xí)慣,我們盡量不把應(yīng)用軟件安裝載系統(tǒng)盤里。因?yàn)橐郧暗碾娔X使用的是機(jī)械硬盤,而機(jī)械硬盤頻繁讀寫會降低效率,所以盡量將操作系統(tǒng)與應(yīng)用軟件放在不同的硬盤分區(qū)下。當(dāng)然,現(xiàn)在的電腦大部分都配備了固態(tài)硬盤(SSD),而且通常作為系統(tǒng)盤來使用,因此已經(jīng)沒有讀寫效率的問題了。所以如果你還在用機(jī)械鍵盤,就將 MinGW-w64 放到其他非系統(tǒng)盤里,如果使用固態(tài)硬盤,則可以放在安裝程序提示的默認(rèn)位置,或其他地方均可。
操作:點(diǎn)擊紅框中的“Browse”按鈕,以便更改 MinGW-w64 的安裝位置。
18.更改 MinGW-w64 的安裝位置
說明:點(diǎn)開綠框中的“此電腦”,就可以打開一個(gè)樹狀列表,然后找到你想要將 MinGW-w64 安裝到的位置。你也可以點(diǎn)擊黃框中的“新建文件夾”按鈕,創(chuàng)建一個(gè)新的目錄。
操作:選擇好安裝的目錄后,點(diǎn)擊紅框中的“確定”按鈕,之后安裝程序?qū)?MinGW-w64 安裝到那里。
19.確認(rèn) MinGW-w64 安裝目錄
說明:界面中的 Space available 指的是你選擇的目錄,所在的硬盤分區(qū)的剩余空間,而 MinGW-w64 至少會占用 500 MB 的空間。Create shortcuts in Start Menu 是說在開始菜單創(chuàng)建 MinGW-w64 的快捷方式,一般默認(rèn)勾選即可。
操作:確認(rèn)安裝目錄沒問題后,點(diǎn)擊紅框中的“Next”按鈕,開始正式安裝 MinGW-w64 。
20.開始下載 MinGW-w64 本體
說明:安裝程序開始連接服務(wù)器,并從中下載 MinGW-w64 的本體文件,視乎你的網(wǎng)絡(luò)環(huán)境,下載所需的時(shí)間會有所不同,如果你有其他事情要做,可以點(diǎn)擊“Cancel”按鈕,取消本次安裝。
操作:只需等待。
21.MinGW-w64 下載完成
說明:MinGW-w64 已經(jīng)下載完成,我們可以在之前選擇的安裝目錄下,找到它的各種組件文件。
操作:點(diǎn)擊紅框中的“Next”按鈕,繼續(xù)下一個(gè)步驟。
22.關(guān)閉 MinGW-w64 安裝程序
說明:MinGW-w64 的安裝程序已經(jīng)完成了它的使命,但 MinGW-w64 還沒有安裝完成,之后我們還需要進(jìn)行一些配置,才能正常使用它編譯源代碼。
操作:點(diǎn)擊紅框中的“Finish”按鈕,將關(guān)閉 MinGW-w64 安裝程序。
23.MinGW-w64 安裝目錄
說明:MinGW-w64 下載完成后的安裝目錄,包含1個(gè)文件夾:mingw64,3個(gè)文件:mingw-w64.bat、uninstall.exe、uninstall.ini,和1個(gè)快捷方式:mingw-w64。雖然 MinGW-w64 已經(jīng)下載完成,但并沒有安裝完成,我們還需要配置一下操作系統(tǒng)的環(huán)境變量,將 MinGW-w64 的 bin 目錄加入其中,使操作系統(tǒng)可以找到那些編譯工具。
操作:雙擊紅框中的“mingw64”文件夾,進(jìn)入其中。
24.MinGW-w64 的 mingw64 文件夾
說明:mingw64 中包含了一系列的文件夾,根據(jù)文件夾的名稱,大概能猜到它們是做什么用的,但我們暫時(shí)不需要完全明白,只需要知道其中 bin 文件夾中,存放了那些編譯工具即可。
操作:雙擊紅框中的“bin”文件夾,進(jìn)入其中。
25.MinGW-w64 的 bin 文件夾
說明:bin 文件夾下包含了很多后綴名是 .exe 的可執(zhí)行程序,這些就是開發(fā)時(shí)所需的工具,如:gcc.exe 是用來編譯 C程序的,g++.exe 是用來編譯 C++ 程序的,而 gdb.exe 則是用來調(diào)試程序的 debug 工具。
操作:點(diǎn)擊紅框中的地址欄,并復(fù)制(Ctrl + c)那一串地址。
26.此電腦
說明:我們已經(jīng)復(fù)制了 MinGW-w64 的 bin 文件夾的地址,接下來只要將它添加到系統(tǒng)的環(huán)境變量中,就可以完成 MinGW-w64 的全部配置了。
操作:右鍵點(diǎn)擊“此電腦”,在彈出的菜單中點(diǎn)擊紅框中的“屬性”項(xiàng)。
27.計(jì)算機(jī)系統(tǒng)窗口
說明:這個(gè)窗口也可以通過“控制面板” -> “系統(tǒng)和安全” -> “系統(tǒng)”來打開。如果你不知道自己的系統(tǒng)是 32位 還是 64位,也可以在這里查看。
操作:點(diǎn)擊紅框中的“高級系統(tǒng)設(shè)置”鏈接,將打開“系統(tǒng)屬性”窗口。
28.系統(tǒng)屬性窗口
說明:所謂的“環(huán)境變量”其實(shí)就是各種程序的默認(rèn)安裝目錄,在那里有可執(zhí)行程序。
操作:點(diǎn)擊紅框中的“環(huán)境變量”按鈕,將打開“環(huán)境變量”窗口。
29.系統(tǒng)環(huán)境變量窗口
說明:在這個(gè)窗口中我們可以編輯系統(tǒng)的環(huán)境變量,很多軟件在安裝的時(shí)候,會自動編輯環(huán)境變量。MinGW-w64 的安裝程序比較簡陋,只能由我們手動編輯。
操作:首先點(diǎn)擊選中綠框中的“Path”項(xiàng),然后再點(diǎn)擊紅框中的“編輯”按鈕。
30.編輯 Path 環(huán)境變量
說明:這是 Windows 10 中的編輯界面,比之前的版本要清晰明了,操作簡單了很多,也不容易出錯(cuò)了。
操作:點(diǎn)擊紅框中的“新建”按鈕,將創(chuàng)建一個(gè)新的空白變量位置。
31.新建 MinGW-w64 的環(huán)境變量
說明:現(xiàn)在只需將之前復(fù)制的 MinGW-w64 的 bin 文件夾地址,復(fù)制到新增的空白變量位置里,即可完成 MinGW-w64 的配置工作。
操作:將 bin 文件夾地址,黏貼到紅框中的輸入框中。
32.添加 MinGW-w64 環(huán)境變量已完成
說明:MinGW-w64 的環(huán)境變量已經(jīng)添加完畢。
操作:點(diǎn)擊紅框中的“確定”按鈕,MinGW-w64 的配置就完成了。
33.啟動“命令提示符”
說明:為了測試 MinGW-w64 是否配置成功,我們需要在“命令提示符”中執(zhí)行一個(gè)命令。所以要先啟動“命令提示符”,值得注意的是各個(gè) Windows 版本的啟動方式不同,但都可以通過打開“運(yùn)行”窗口,輸入“cmd”來打開它。
操作:右鍵點(diǎn)擊開始按鈕,在彈出的菜單中點(diǎn)擊紅框中的“命令提示符”項(xiàng)。
34.命令提示符
說明:MinGW-w64 是命令行工具,如果不與其他軟件配合,則只能通過“命令提示符”來調(diào)用。
操作:輸入“gcc -v” 并按回車鍵(Enter),將會顯示 MinGW-w64 的組件列表。
35.MinGW-w64 安裝完成
說明:如果你的“命令提示符”顯示了一大串組件信息,那說明你的 MinGW-w64 已經(jīng)安裝完成了,恭喜!
操作:從現(xiàn)在開始你就可以用 MinGW-w64 來編譯 C程序 了。
五、使用 MinGW-w64 編譯源代碼
MinGW-w64 沒有圖形用戶界面,它其實(shí)是一組命令行工具集,任何操作都只能通過在“命令提示符”中輸入命令的形式來執(zhí)行。對于編程來說,這種命令行工具尤其獨(dú)特的優(yōu)勢,那就是不用雙手離開鍵盤,即可完成所有操作。鼠標(biāo)雖然使用簡單方便,但效率仍然不及鍵盤。而且,給一個(gè)程序開發(fā)圖形用戶界面,是一件非常麻煩的事情,因?yàn)樗桥c平臺緊密相關(guān)的,你要考慮各個(gè)平臺的不同。
當(dāng)然,世界上還是有很多擁有漂亮的圖形用戶界面的集成開發(fā)環(huán)境(IDE),其中的一些內(nèi)置的編譯器就是 MinGW-w64(GCC) ,例如:Code Lite、Code::Blocks 等。
A.編譯命令 gcc
格式:gcc 源代碼文件的完整名字
示例:gcc hello.c
說明:“gcc”是 MinGW-w64 內(nèi)置的編譯命令,“hello.c”則是我們要編譯的源代碼文件的名字。
注意:首先,“gcc”命令與源代碼的文件名之間有一個(gè)空格。其次,文件名必須完整正確,不能省略后綴名“.c”。
因?yàn)?MinGW-w64 本來就是將 GCC 移植到 Windows 上的產(chǎn)物,所以操作方式和 GCC 一樣,只是在 Linux 下命令是被鍵入到“終端”中,而 Windows 下則是被鍵入到“命令提示符”里。
B.創(chuàng)建 hello.c 源代碼文件
在用“gcc”命令編譯源代碼之前,我們首先要有一個(gè)存儲了C語言代碼的文件。C語言的源代碼文件其實(shí)就是普通的文本文件,唯一的區(qū)別就是后綴名不同,文本文件的后綴名是“.txt”,而C語言源代碼文件的后綴名是“.c”。
所以我們新建一個(gè)文本文件,名字可以任意取,我這里就將其命名為“hello”,現(xiàn)在文件的完整名字就是“hello.txt”了。之后我們只需要把“hello.txt”的后綴名“.txt”更改為“.c”后綴名,這樣就得到了 C語言 源代碼文件“hello.c”了。
C.編寫 hello, world 源代碼
這里用 Windows 自帶的記事本或任意文本編輯器,將“hello.c”這個(gè)源代碼文件打開,然后將上圖所示的測試代碼鍵入到文件中,最后保存文件即可?,F(xiàn)在測試用的源代碼文件已經(jīng)準(zhǔn)備完成,我們可以進(jìn)行下一步的編譯了。
這段代碼是最基礎(chǔ)的 hello, world 程序,會在屏幕上顯示“hello, world”這段文字。相信這是學(xué)編程的大多數(shù)人,入門時(shí)的第一個(gè)程序,所以這里也就不再贅述了。
D.編譯 hello.c 源代碼
之前說過 MinGW-w64 是命令行工具沒有圖形用戶界面,所以編譯操作需要在命令提示符中進(jìn)行。
首先我們打開命令提示符,然后要將工作目錄定位到源代碼文件的存儲位置,這一步非常重要,沒有接觸過命令行工具的人,往往會在這里出錯(cuò)。DOS 命令“cd”可以改變當(dāng)前的工作目錄,具體做法是“cd”命令后面加上目標(biāo)工作目錄,如上圖第三行,就是重新定位到 E盤的 a 目錄下。使用完“cd”命令后,還要再鍵入一次定位到的目錄的地址,這樣才會轉(zhuǎn)移過去,但只需要鍵入盤符即可,并不需要鍵入完整地址,如上圖第四行。工作目錄重新定位后,如上圖第五行所示,工作目錄已經(jīng)從 C:Userslenovo 更改為 E:a 。
現(xiàn)在我們只需要執(zhí)行“gcc hello.c”這行命令,就可以將源代碼編譯為可執(zhí)行程序了。
E.編譯后生成 a.exe 可執(zhí)行程序
如上圖所示,a.exe 就是編譯后生成的可執(zhí)行程序。因?yàn)槲覀兙幾g時(shí)沒有指定生成的程序名,所以 MinGW-w64 默認(rèn)將程序命名為 a ,加上后綴名就是 a.exe 了。如果我們想在編譯時(shí)就指定生成的程序名,就需要使用“gcc”命令的“-o”選項(xiàng)了。
F.帶 -o 參數(shù)的 gcc 命令
格式:gcc 源代碼文件的名字 -o 編譯后程序的名字
示例:gcc hello.c -o hello.exe
說明:“gcc”這個(gè)命令擁有很多內(nèi)置選項(xiàng),其中“-o”表示將它后面的單詞設(shè)置編譯后文件的名字。
注意:選項(xiàng)“o”是英文的小寫字母,并不是數(shù)字零,并且它的后面只能是想設(shè)置的文件名。
這種在編譯時(shí)命名的方法好像很雞肋,初看好像只是幫我們省了一些時(shí)間,畢竟我們也可以在編譯后手動改名。這種想法是因?yàn)槲覀兊某绦蜻€很簡單,只有一個(gè)源代碼文件,也只會編譯出一個(gè)程序。當(dāng)以后我們的程序變復(fù)雜了,可能會在一個(gè)工作目錄下編譯出復(fù)數(shù)個(gè)程序,這時(shí)就必須用 -o 選項(xiàng)了,否則編譯出的程序都叫 a.exe ,會在生成時(shí)互相覆蓋掉。
G.編譯 hello.c 成 hello.exe
同樣要先定位到我們在用的工作目錄下,然后執(zhí)行“gcc hello.c -o hello.exe”這條命令,就會編譯生成一個(gè)名叫 hello.exe 的可執(zhí)行文件了。
H.編譯后生成 hello.exe 可執(zhí)行程序
執(zhí)行完“gcc hello.c -o hello.exe”編譯命令后,會在工作目錄中生成 hello.exe 可執(zhí)行程序,這就是我們得到的最終成果。
I.雙擊運(yùn)行 hello.exe
用鼠標(biāo)雙擊運(yùn)行編譯后的 hello.exe 程序,會啟動一個(gè)命令提示符窗口,并在里面顯示“hello, world”這幾個(gè)字符。這代表我們成功的完成了一次編譯,將那段C語言代碼編譯成了計(jì)算機(jī)可以執(zhí)行的程序。
J.在命令提示符中運(yùn)行 hello.exe
想要運(yùn)行編譯好的程序,并不是非要用鼠標(biāo)雙擊程序啟動,也可在命令提示符中直接輸入編譯后的程序名稱,例如輸入“hello.exe”,也可以直接運(yùn)行程序。甚至可以省略程序的后綴名,只需輸入“hello”即可,程序同樣會正確的運(yùn)行。
六、一些額外的設(shè)置
這些額外的設(shè)置,可以使 MinGW-w64 使用起來更方便。因?yàn)椤癵cc”命令有些麻煩,每次編譯都要輸入類似“gcc hello.c -o hello.exe”這樣的一串字符,所以我們?yōu)榱撕喕@一步驟,轉(zhuǎn)而使用“make”命令。只是“make”是 Linux 和 類Unix 下的工具,所以在 MinGW-w64 中需要一些額外的修改。
1).創(chuàng)建 gcc.exe 的副本 cc.exe
首先復(fù)制一個(gè)“gcc.exe”的副本,然后將其更名為“cc.exe”即可。
2).創(chuàng)建 mingw32-make.exe 的副本 make.exe
與對“gcc.exe”的操作相同,復(fù)制一個(gè)“mingw32-make”的副本,然后更名為“make.exe”。
3).使用 make 命令編譯源代碼
現(xiàn)在我們就可以使用“make”命令來編譯源代碼,只需要輸入“make hello”即可編譯生成“hello.exe”了。
七、進(jìn)階
上述只是簡單的編譯源代碼的方法,適用于單個(gè)或少量源代碼文件,如果是復(fù)雜的大型程序,要用到 makefile 來組織源代碼時(shí),就需要 mingw32-make(修改后使用 make) 命令了。
如果程序編譯或運(yùn)行出錯(cuò),需要調(diào)試源代碼,則可以使用 gdb 命令,來幫助我們確定問題產(chǎn)生在哪里。
如果代碼沒有明顯的編譯錯(cuò)誤,運(yùn)行時(shí)也沒有邏輯錯(cuò)誤,則在最終編譯為可發(fā)布版的程序時(shí),我們還要考慮編譯優(yōu)化的問題,以便生成的程序文件擁有更小的體積,和更高的運(yùn)行效率。gcc 命令有 -00 、 -01 、 -02 、 -03 這幾個(gè)優(yōu)化選項(xiàng),其中 -00 是默認(rèn)選項(xiàng),意思是無優(yōu)化,剩下的幾個(gè)選項(xiàng)隨數(shù)字的增大,優(yōu)化程度也會逐漸增強(qiáng)。
八、問題列表
這里會列出一些可以預(yù)見的問題,并提供解決問題方法。
①.如果“自動安裝程序”無法下載組件
說明:如果網(wǎng)絡(luò)環(huán)境不太好,或因?qū)拵峁┥痰南拗?,可能會?dǎo)致程序下載組件非常的緩慢,甚至?xí)?。這種時(shí)候,我們可以不用安裝程序,而是嘗試直接手動下載 MinGW-w64 的壓縮包。這種方法的好處是可以使用第三方下載軟件,而這種下載軟件大多提供加速下載,以及斷點(diǎn)續(xù)傳功能?;灸芙鉀Q無法下載的問題。
操作:如上圖所示。將第四章、第3節(jié) SourceForge 中的 MinGW-w64 下載頁面往下拉,就能看到這部分的頁面。其中,紅框內(nèi)的鏈接,就是 MinGW-w64 的壓縮包手動下載鏈接(6.3.0版),只需根據(jù)需要選擇對應(yīng)的鏈接下載即可。例如:x86_64-win32-seh ,x86_64 指 64位,win32 指可開發(fā) Windows 程序,seh 指 異常處理模型。
將 MinGW-w64 壓縮包下載到本地后,解壓縮,然后就可以照常進(jìn)行配置了。
出處:https://zhuanlan.zhihu.com/p/76613134
=======================================================================================
最近用 C 語言寫了一個(gè)小程序,在設(shè)計(jì)時(shí)希望該程序在 Windows、Linux平臺上都能夠運(yùn)行,所以使用宏來區(qū)分在不同操作系統(tǒng)下執(zhí)行的語句。比如這個(gè)程序需要加載動態(tài)鏈接庫,在包含頭文件時(shí),寫法如下:#if defined(_WIN32) || defined(_WIN64) #include #else #include /* unix 或 linux 下包含與動態(tài)庫加載、卸載有關(guān)函數(shù)的頭文件名是 dlfcn.h */ #endif
加載動態(tài)鏈接庫時(shí),處理方法如下:
#if defined(_WIN32) || defined(_WIN64) HINSTANCE dll_handle_for_win; /* 當(dāng)操作系統(tǒng)為 windows 類型時(shí),使用函數(shù) LoadLibrary() 加載動態(tài)鏈接庫 */ #else void *dll_handle_for_unix_or_linux; char *error_statement; /* 當(dāng)操作系統(tǒng)為 unix 或 linux 類型時(shí),使用函數(shù) dlopen() 加載動態(tài)鏈接庫 */ #endif int error_code; char dll_file_name[256]; /* dll_file_name 是要加載的動態(tài)鏈接庫文件名 */ /********************************* 注意:這里省略了部分內(nèi)容 **********************************/ /**************************************/ // Load dynamic library #if defined(_WIN32) || defined(_WIN64) if ( !(dll_handle_for_win = LoadLibrary(dll_file_name)) ) { #ifdef _DEBUG printf("load dynamic link library '%s' failed at %s, line %d! ", dll_file_name, __FILE__, __LINE__); error_code = GetLastError(); printf("LoadLibrary() function returned error code: 0x%x ", error_code); #endif return (-1); } /**************************************/ #else dlerror(); if ( !(dll_handle_for_unix_or_linux = dlopen(dll_file_name, RTLD_LAZY)) ) { error_statement = dlerror(); #ifdef _DEBUG printf("load dynamic link library '%s' failed at %s, line %d! ", dll_file_name, __FILE__, __LINE__); printf("Error statement: %s ", error_statement); #endif return (-1); } #endif
釋放動態(tài)鏈接庫時(shí),處理方法如下:#if defined(_WIN32) || defined(_WIN64) FreeLibrary(dll_handle_for_win); #else dlclose(dll_handle_for_unix_or_linux); #endif
在 64 位 Win7 下,用 Visual Studio 2010 編譯、鏈接,能夠生成可執(zhí)行程序,程序能正常運(yùn)行。接下來想知道在 Linux 下該程序能否編譯,希望在 Windows 平臺上先排除一下像拼寫一類的小錯(cuò)誤,可是手頭暫時(shí)沒有安裝Linux 的計(jì)算機(jī),這樣就需要在 Windows 平臺上用 GCC 編譯一下這個(gè)程序,我的做法如下:
1. 安裝 MinGW;在 MinGW 的官網(wǎng)( http:/// )上找到安裝文件。
下載鏈接為:https://nchc.dlhttp://www.360doc.com/content/23/1123/23/project/mingw/Installer/mingw-get-setup.exe
注意:這個(gè)是 32 位的 MinGW,如果需要 64 位的 MinGW,
下載網(wǎng)頁是:MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net
運(yùn)行程序 mingw-get-setup.exe,安裝時(shí)會看到是否同時(shí)安裝圖形用戶界面支持( also install support for the graphical user interface )的提示,由于用不到,就取消了對這一項(xiàng)的勾選。安裝時(shí)將 MinGW 安裝到了默認(rèn)目錄 C:MinGW 下。
2. 安裝GCC;按Windows組合鍵 Win + R,輸入命令 cmd,啟動命令提示符窗口。進(jìn)入目錄 C:MinGWbin ,執(zhí)行命令:mingw-get install gcc
這樣就開始從網(wǎng)絡(luò)上下載 GCC 相關(guān)的文件,安裝完成后,
執(zhí)行命令:gcc --version ,將會看到 GCC 的版本號。如果想獲取更多信息,可以執(zhí)行命令:gcc -v
3. 修改環(huán)境變量;“開始”按鈕 -> 計(jì)算機(jī) -> 菜單中的“系統(tǒng)屬性” -> 高級系統(tǒng)設(shè)置,修改環(huán)境變量,在原有的 Path 后面添加以下內(nèi)容:
;C:MinGWbin
修改完成后重啟計(jì)算機(jī)。重啟后,就可以在命令提示符窗口中,在任意路徑下執(zhí)行 gcc.exe 程序了。
4. 編譯 C 程序。由于當(dāng)前階段只想編譯程序,不需要鏈接。進(jìn)入命令提示符窗口,到程序所在目錄下,執(zhí)行g(shù)cc的命令
格式如下:gcc -c 源代碼文件名.c -I 頭文件所在路徑
比如可以是:gcc -c test.c -I C: estcodeinclude
結(jié)果顯示了一大堆錯(cuò)誤和警告。仔細(xì)一看,好像編譯報(bào)錯(cuò)的程序語句都處于 _WIN32 或 _WIN64 宏定義中包含的部分。我們此時(shí)的目的并不是要用 GCC 生成 Windows 下的可執(zhí)行程序,而是想讓 GCC 編譯一下程序中能夠在 Linux 平臺上執(zhí)行的那部分語句,檢查那部分語句中是否存在語法等錯(cuò)誤,但是現(xiàn)在 GCC 編譯的還是在 Windows 平臺上能執(zhí)行的語句。為什么會這樣?需要查看一下 GCC 編譯時(shí)默認(rèn)已定義了哪些宏。在網(wǎng)上查到查看 GCC 編譯時(shí)默認(rèn)宏的命令是:
gcc -posix -E -dM -
可是該命令在 Windows 的命令提示符窗口中無法執(zhí)行。這該怎么辦呢?忽然想到這臺計(jì)算機(jī)上安裝過從 Git for Windows 上下載的 git for windows。該程序自帶了一個(gè) Git Bash,如下圖:
到“開始”菜單中,啟動 Git Bash,然后輸入命令:gcc -posix -E -dM -
這下可以成功執(zhí)行了,顯示出當(dāng)前 GCC 中定義的宏列表,如下圖:
果然使用 mingw-get 安裝的 gcc 中,已經(jīng)默認(rèn)定義了 _WIN32 宏。在編譯 C 程序時(shí),想取消對 _WIN32 及 _WIN64 宏的定義,可以使用下面的命令:
gcc -c test.c -I C: estcodeinclude -U_WIN32 -U_WIN64
還發(fā)現(xiàn)默認(rèn)已定義的宏中沒有包含 _DEBUG,在編譯調(diào)試版程序時(shí)需要用到這個(gè)宏,可以使用下面的命令:
gcc -c test.c -I C: estcodeinclude -U_WIN32 -U_WIN64 -D_DEBUG
用 GCC 編譯時(shí)發(fā)現(xiàn)不再報(bào)告處于 _WIN32 或 _WIN64 宏定義中包含的語句錯(cuò)誤了。接下來根據(jù)編譯結(jié)果給出的提示,修改了一些拼寫錯(cuò)誤,成功生成了 test.o 文件,證明該 C 程序能夠在 Linux 下通過編譯。等將來有空時(shí)安裝 Linux 虛擬機(jī),再將 C 程序及其調(diào)用的動態(tài)庫源程序都拿到 Linux 上編譯鏈接,就能生成 Linux 上的可執(zhí)行程序了。
------------------------
說明
gcc 編譯選項(xiàng):
-c 只編譯,不鏈接
-D 使用指定的宏
-U 取消指定的宏
出處:https://blog.csdn.net/henter/article/details/54863462
=======================================================================================
MinGW安裝和使用
MinGW(Minimalist GNU For Windows)是個(gè)精簡的Windows平臺C/C++、ADA及Fortran編譯器,相比Cygwin而言,體積要小很多,使用較為方便。
MinGW最大的特點(diǎn)就是編譯出來的可執(zhí)行文件能夠獨(dú)立在Windows上運(yùn)行。
MinGW的組成:
編譯器(支持C、C++、ADA和Fortran)
GNU工具
mingw-get(用于Windows平臺安裝和部署MinGW和MSYS的命令行安裝器)
mingw-get-inst(用于GUI打包)
1. MinGW安裝
1.1. 下載
MinGW官方網(wǎng)址:http://wwwhttp://www.360doc.com/content/23/1123/23/
點(diǎn)擊“Download Installer”后會跳轉(zhuǎn)到Sourceforge頁面進(jìn)行下載:
之后,會下載一個(gè)名為mingw-get-setup.exe的安裝文件。
1.2. 安裝下載器
運(yùn)行剛剛下載的安裝程序,看到如下界面:
點(diǎn)擊“Install”,進(jìn)入下面這個(gè)界面:
選擇安裝路徑
默認(rèn)安裝路徑為C:MinGW,我習(xí)慣安裝在D盤下,點(diǎn)擊“Change”修改路徑如下:
點(diǎn)"Continue"繼續(xù)。
安裝過程
安裝完成后,桌面出現(xiàn)這樣一個(gè)圖標(biāo)。
安裝器
這只是個(gè)安裝器,需要在線下載真正的安裝內(nèi)容,所以速度不會快。
1.3. 選擇安裝組件
運(yùn)行安裝程序,有的版本在安裝之后會自動運(yùn)行,看到下面這個(gè)界面:
選擇安裝組件
選擇需要安裝的組件,右鍵選擇“Mark for Installation”,之后選擇"Installation -> Apply Changes”。
1.4. GCC
這里重點(diǎn)要提到的是GCC組件的安裝,如圖所示。
選擇GCC組件
先選擇左邊的"MinGW Base System"選項(xiàng),之后再右邊找到mingw-gcc。最好選擇bin,dev和lic三個(gè)組件進(jìn)行安裝。
之后點(diǎn)擊菜單欄中的“Installation”進(jìn)行安裝。
注意:在安裝程序中,復(fù)選框?yàn)榫G色表示已經(jīng)安裝的項(xiàng)目,復(fù)選框?yàn)榘咨硎緵]有安裝的項(xiàng)目。因此如果需要?jiǎng)h除,只需要在綠色復(fù)選框右鍵后選擇“Mark for removal”即可。
1.5 確認(rèn)安裝成功
安裝執(zhí)行完成后,在D:MinGWbin目錄(我們之前配置好的路徑)下進(jìn)行查看。如果找到下面這三個(gè)可執(zhí)行文件,說明安裝成功。
注意:如果你是為了使用Code::Blocks安裝MinGW,到這一步就完成了。之后的使用請參考C語言從零開始(二)-Code::Blocks使用。Code::Blocks在配置Debug工具時(shí)需要制定MinGW的路徑。
2. 配置
2.1. 設(shè)置MinGW環(huán)境變量
鼠標(biāo)右鍵“我的電腦”->“屬性”,選擇“高級”選項(xiàng)卡下的“環(huán)境變量”,在系統(tǒng)變量里點(diǎn)“新建”,之后填寫MinGW的安裝路徑,如下:
MinGW路徑
之后找到Path,在最前面添加下面這段聲明,之后點(diǎn)擊確定。安裝完成后,在MinGWbin的目錄下,會有一個(gè)名為gcc.exe的可執(zhí)行文件??吹竭@個(gè)說明安裝成功。%MinGW%bin;
2.2. 查看GCC版本信息
打開命令行,輸入gcc -v查看編譯器版本。如下圖:
GCC
3. MinGW使用
3.1. 測試編譯
測試文件test.c,代碼如下#include void main() {printf("Hello World!");}
3.2. 編譯test
編譯命令如下:gcc test.c -o test
輸出結(jié)果為:test.exe
3.3. 執(zhí)行
輸入test回車,結(jié)果如下:
結(jié)果
from:https://www.jianshu.com/p/e9ff7b654c4a
出處:https://www.cnblogs.com/lidabo/p/8990348.html
=======================================================================================
win10安裝MinGW
MinGW,Minimalist GNU for Windows,windows最簡化的GNU,就是一個(gè)C的編譯工具集,轉(zhuǎn)為windows操作系統(tǒng)下的C/C++開發(fā)者服務(wù)。我們從官網(wǎng)下載安裝程序,打開官網(wǎng)后右邊菜單欄點(diǎn)擊Downloads:
跳往下載列表頁面后,往下拉,點(diǎn)擊安裝程序下載:
最后雙擊該exe執(zhí)行安裝,彈出安裝界面:
接下來默認(rèn)給你設(shè)置好了安裝目錄和勾選了默認(rèn)設(shè)置,點(diǎn)擊繼續(xù):
最后進(jìn)入安裝包階段,左邊窗口有兩個(gè)按鈕:基礎(chǔ)必備的和全部的,對應(yīng)右邊的詳細(xì)列表:
點(diǎn)擊復(fù)選框,下面窗口會說明這個(gè)包用來干嘛, 在彈出的框中點(diǎn)擊Mark for Installation安裝標(biāo)記后,點(diǎn)擊左上角的Installation -> Apply Changes:
雖然只是這幾個(gè)基礎(chǔ)包,下載也不容易,畢竟是外網(wǎng),老是鏈接超時(shí):
而且它會反復(fù)嘗試,退不出來,只能用任務(wù)管理器把它kill掉。既然此路不通,只能另走他路。我們打開命令行,進(jìn)入C盤的MinGW目錄bin路徑,敲命令安裝:
C:MinGWbin>mingw-get install gcc http:///dl/mingw/gcc-9.2.0-2-mingw32-lic.tar.xz 21.33 kB / 21.33 kB |================================================| 100% http:///dl/mingw/libiconv-1.14-4-mingw32-dll-2.tar.xz 642.41 kB / 642.41 kB |================================================| 100% http:///dl/mingw/libatomic-9.2.0-2-mingw32-dll-1.tar.xz 7.47 kB / 7.47 kB |================================================| 100% http:///dl/mingw/libgcc-9.2.0-2-mingw32-dll-1.tar.xz 167.01 kB / 167.01 kB |================================================| 100% http:///dl/mingw/libgmp-6.1.2-3-mingw32-dll-10.tar.xz 204.25 kB / 204.25 kB |================================================| 100%
如果還是出現(xiàn)鏈接下載失敗:http:///dl/mingw/gcc-9.2.0-2-mingw32-lang.tar.xz 1.57 MB / 1.57 MB |================================================| 100% mingw-get: *** ERROR *** http:///dl/mingw/gcc-core-9.2.0-2-mingw32-bin.tar.xz:cannot open URL; status = 12029 mingw-get: *** ERROR *** Get package: http:///dl/mingw/gcc-core-9.2.0-2-mingw32-bin.tar.xz: download failed install: gcc-9.2.0-2-mingw32-lic.tar.xz
我們重新執(zhí)行一次即可,它會把失敗的jar包重新下載:
C:MinGWbin>mingw-get install gcc http:///dl/mingw/gcc-core-9.2.0-2-mingw32-bin.tar.xz 17.05 MB / 17.05 MB |================================================| 100% install: gcc-9.2.0-2-mingw32-lic.tar.xz mingw-get: *** ERROR *** package gcc-9.2.0-2-mingw32-lic.tar.xz is already installed install: gcc-core-9.2.0-2-mingw32-bin.tar.xz installing gcc-core-9.2.0-2-mingw32-bin.tar.xz install: gcc-core-4.8.2-2-mingw32-dev.tar.lzma mingw-get: *** ERROR *** package gcc-core-4.8.2-2-mingw32-dev.tar.lzma is already installed install: gcc-core-4.8.1-5-mingw32-doc.tar.lzma mingw-get: *** ERROR *** package gcc-core-4.8.1-5-mingw32-doc.tar.lzma is already installed install: gcc-9.2.0-2-mingw32-man.tar.xz mingw-get: *** ERROR *** package gcc-9.2.0-2-mingw32-man.tar.xz is already installed install: gcc-9.2.0-2-mingw32-info.tar.xz mingw-get: *** ERROR *** package gcc-9.2.0-2-mingw32-info.tar.xz is already installed install: gcc-9.2.0-2-mingw32-lang.tar.xz mingw-get: *** ERROR *** package gcc-9.2.0-2-mingw32-lang.tar.xz is already installed
一直下載不下來,我們也可以自己打開上面提示的下載地址頁面,自己去下載:
然后需要手動把下載的包放到指定目錄下:
同上,繼續(xù)執(zhí)行g(shù)++、gdb和mingw32-make的下載:C:MinGWbin>mingw-get install g++ http:///dl/mingw/gcc-c++-9.2.0-2-mingw32-bin.tar.xz 10.39 MB / 10.39 MB |================================================| 100% http:///dl/mingw/gcc-c++-9.2.0-2-mingw32-man.tar.xz 255.52 kB / 255.52 kB |================================================| 100% C:MinGWbin>mingw-get install gdb http:///dl/mingw/libz-1.2.11-1-mingw32-dll-1.tar.xz 62.95 kB / 62.95 kB |================================================| 100%
gdb的話這個(gè)鏈接http://prdownloads.死活連不上,我認(rèn)為這個(gè)網(wǎng)址變更了,去掉了前面的prdownloads.變成如下鏈接:MinGW - Minimalist GNU for Windows - Browse /MinGW/Extension at SourceForge.net
我們把這幾個(gè)下載下來:
把上面6個(gè)壓縮包放到C:MinGWvarcachemingw-getpackages目錄中,重新安裝一次。
mingw32-make也是如法炮制:
1、命令行執(zhí)行安裝失敗(還是這個(gè)prdownloads.):
C:>mingw-get install mingw32-make mingw-get: *** ERROR *** http://prdownloadshttp://www.360doc.com/content/23/1123/23/mingw/make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma?download:cannot open URL; status = 12031 mingw-get: *** ERROR *** Get package: http://prdownloadshttp://www.360doc.com/content/23/1123/23/mingw/make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma?download: download failed mingw-get: *** ERROR *** http://prdownloadshttp://www.360doc.com/content/23/1123/23/mingw/make-3.82.90-2-mingw32-cvs-20120902-doc.tar.lzma?download:cannot open URL; status = 12031 mingw-get: *** ERROR *** Get package: http://prdownloadshttp://www.360doc.com/content/23/1123/23/mingw/make-3.82.90-2-mingw32-cvs-20120902-doc.tar.lzma?download: download failed mingw-get: *** ERROR *** http://prdownloadshttp://www.360doc.com/content/23/1123/23/mingw/make-3.82.90-2-mingw32-cvs-20120902-lic.tar.lzma?download:cannot open URL; status = 12031 mingw-get: *** ERROR *** Get package: http://prdownloadshttp://www.360doc.com/content/23/1123/23/mingw/make-3.82.90-2-mingw32-cvs-20120902-lic.tar.lzma?download: download failed mingw-get: *** ERROR *** http://prdownloadshttp://www.360doc.com/content/23/1123/23/mingw/make-3.82.90-2-mingw32-cvs-20120902-lang.tar.lzma?download:cannot open URL; status = 12031 mingw-get: *** ERROR *** Get package: http://prdownloadshttp://www.360doc.com/content/23/1123/23/mingw/make-3.82.90-2-mingw32-cvs-20120902-lang.tar.lzma?download: download failed
2、到網(wǎng)站上找對應(yīng)的包(一般都是找最上面那個(gè)最新的):
3、下完后放到mingw的包目錄中:
4、重現(xiàn)用命令行執(zhí)行以下安裝:
C:>mingw-get install mingw32-make install: make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma installing make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma install: make-3.82.90-2-mingw32-cvs-20120902-doc.tar.lzma installing make-3.82.90-2-mingw32-cvs-20120902-doc.tar.lzma install: make-3.82.90-2-mingw32-cvs-20120902-lic.tar.lzma installing make-3.82.90-2-mingw32-cvs-20120902-lic.tar.lzma install: make-3.82.90-2-mingw32-cvs-20120902-lang.tar.lzma installing make-3.82.90-2-mingw32-cvs-20120902-lang.tar.lzma
最后把MinGW配置到系統(tǒng)環(huán)境變量中,方便使用以上工具:右鍵點(diǎn)擊“此電腦” -> 選擇“屬性” -> 選“高級系統(tǒng)設(shè)置” -> 點(diǎn)“環(huán)境變量” -> 選“Path”后點(diǎn)編輯 -> 在彈出框點(diǎn)新建,把C:MinGWbin的路徑加進(jìn)去:
確認(rèn)下我們的安裝:
C:Userswuxun>gcc -v COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=c:/mingw/bin/http://www.360doc.com/content/23/1123/libexec/gcc/mingw32/9.2.0/lto-wrapper.exe gcc 版本 9.2.0 (MinGW.org GCC Build-2) C:Userswuxun>g++ -v COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=c:/mingw/bin/http://www.360doc.com/content/23/1123/libexec/gcc/mingw32/9.2.0/lto-wrapper.exe gcc 版本 9.2.0 (MinGW.org GCC Build-2) C:>gdb -v GNU gdb (GDB) 7.6.1 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "mingw32". For bug reporting instructions, please see:. C:>mingw32-make -v GNU Make 3.82.90 Built for i686-pc-mingw32 Copyright (C) 1988-2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
出處:https://www.cnblogs.com/wuxun1997/p/13364183.html
=======================================================================================
windows下安裝mingw-w64
mingw-w64應(yīng)該可以算是mingw的改進(jìn)版本吧,mingw系列編譯器是非常好的并且主流的c/c++編譯器
mingw-w64只負(fù)責(zé)程序的編譯,只提供命令行操作沒有編輯代碼的圖像界面,代碼的編寫需要由文本編輯器(如vscode)來完成
安裝步驟:
首先官網(wǎng)去下載:mingw-w64
但普通人群可能會因?yàn)橐恍┰蛳螺d失敗,所以一般建議下載離線版解壓后添加環(huán)境變量
離線版下載地址:Download MinGW-w64 - for 32 and 64 bit Windows from SourceForge.net
下載后選一個(gè)合適的位置解壓,這個(gè)位置也就相當(dāng)于是安裝位置(順便給文件夾改個(gè)短一點(diǎn)的名字)
進(jìn)入解壓好的文件夾下的bin文件夾
復(fù)制下來路徑
然后在此電腦鼠標(biāo)右鍵選擇屬性
選擇高級系統(tǒng)設(shè)置
點(diǎn)環(huán)境變量
選擇系統(tǒng)環(huán)境變量下的Path
選擇編輯
點(diǎn)新建
然后把剛剛復(fù)制的文件路徑粘貼進(jìn)去
然后一路點(diǎn)確定退出
完成
驗(yàn)證一下
按win+r運(yùn)行cmd或者powershell輸入gcc -v
出現(xiàn)下圖的信息說明一切順利
結(jié)束
之后就能通過g++ xxx.cpp -o xxx.exe這樣的命令行指令編譯c/cpp文件了
文章知識點(diǎn)與官方知識檔案匹配,可進(jìn)一步學(xué)習(xí)相關(guān)知識。
(如果你想要開發(fā)Windows程序需要選擇win32操作系統(tǒng)接口協(xié)議MinGW-w64適合學(xué)習(xí)時(shí)使用真正工作還是用VS2015更好)