1. 程式人生 > >【轉】MinGW簡介

【轉】MinGW簡介

轉自:http://sweetcandy2010.blog.163.com/blog/static/136935769201001213831139/

距離最開始學習C++已經4年了,一直以來都只是使用visual studio的編譯和執行,對於visual studio的其他選單項都幾乎不去碰。這次是想真的認真去學習一下,而自己的學習也不涉及到很複雜的工程,只是單純的學習語言,寫寫演算法之類,所以想換個別的編譯器來用。於是從早上坐到電腦面前就開始找別的編譯器。最終選擇了MinGW,嚴格來說MinGW並不是單純的編譯器。網上對於它的介紹都零零碎碎,所以我就在下載安裝的同時就看了一些對於它的介紹,順便整理一下,作為自己的儲備。

我是第一次接觸MinGW,所以就從最簡單的說起。

1 引子

C++程式的執行過程:一般來說C++程式的執行過程可以分為兩步:第一步將.cpp原始檔編譯成物件檔案,第二步將物件檔案連結成為可執行檔案。(具體來說,編譯過程還可細分為兩個階段:預處理階段和編譯階段)。

根據上述的程式執行過程我們可以知道在執行過程中需要有編譯器和連結器。而我們還需要在文字編輯器中編寫程式的原始碼,以及除錯程式所需的偵錯程式等,將所有的這些集中在一起就形成了IDE(整合開發環境)。IDE是一種輔助開發人員進行開發的應用軟體。利用IDE,你可以完成編碼,除錯,執行這一系列的過程。而僅僅提供將程式從原始檔轉換到可執行檔案執行的軟體就是我們通常所說的編譯環境或者稱為編譯器。MinGw是gcc在windows下的編譯環境。

2 MinGW:Minimalist GNU for Windows

源起:GNU是在1983年由Richard Stallman發起的一項活動的名稱,這項活動旨在開發一個類似 Unix ,且為自由軟體的完整的作業系統:GNU 系統。這項活動在這二十幾年來已經創造了很多強大的軟體工具:編譯器,文字編輯器,作業系統(linux)等等。GCC(GUN Compiler Collection)就是GNU工程創造的編譯器集合,目前支援ada,java, fortran,C,C++,object c等語言。http://colorado.javaeye.com/blog/283779

首先到http://sourceforge.net/projects/mingw/ 手動去下載最新的MinGW,或使用MinGW-5.1.4.exe,自動下載。但後者往往不能下載到最新的穩定包。

1手動下載說明:

可從:http://sourceforge.net/projects/mingw/ 選擇包下載。

2、執行 MinGW-5.1.4.exe 的話,選擇 Candidate,一般會下載最新的包,選擇如下幾項:

MinGW base tools

g++ compiler

MingGW Make

預設路徑C:\MinGW,我裝在 D:\cplusplus\mingw

根據:http://wiki.codeblocks.org/index.php?title=MinGW_installation,需要下載如下必要的包:

    * http://prdownloads.sf.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz

    * http://prdownloads.sf.net/mingw/gcc-g++-3.4.5-20060117-1.tar.gz

    * http://prdownloads.sf.net/mingw/mingw-runtime-3.9.tar.gz

    * http://prdownloads.sf.net/mingw/mingw-utils-0.3.tar.gz

    * http://prdownloads.sf.net/mingw/w32api-3.6.tar.gz

    * http://prdownloads.sf.net/mingw/binutils-2.17.50-20060824-1.tar.gz

    * http://prdownloads.sf.net/mingw/mingw32-make-3.81-1.tar.gz

另外一個是偵錯程式:   

    * http://prdownloads.sf.net/mingw/gdb-6.3-2.exe

安裝完後就配置環境變數吧。

控制面板--〉系統--〉系統詳細設定--〉環境變數

MINGW_PATH=D:\cplusplus\mingw

C_INCLUDE_PATH=%MINGW_PATH%\include;%MINGW_PATH%\lib\gcc\mingw32\3.4.5\include

CPLUS_INCLUDE_PATH=%MINGW_PATH%\include\c++\3.4.5;%MINGW_PATH%\include\c++\3.4.5\mingw32;%MINGW_PATH%\include\c++\3.4.5\backward;%C_INCLUDE_PATH%

LIBRARY_PATH=%MINGW_PATH%\lib;%MINGW_PATH%\lib\gcc\mingw32\3.4.5

PATH=%MINGW_PATH%\bin;%MINGW_PATH%\libexec\gcc\mingw32\3.4.5

注意:上面的很多3.4.5這個是gcc的版本號,要以真實的資料夾為準。

現在開一個CMD吧

輸入g++ --version

看到以下資訊的話就成功一半了。

Reading specs from D:/cplusplus/mingw/bin/../lib/gcc/mingw32/3.4.5/specs

Configured with: ../gcc-3.4.5-20060117-3/configure --with-gcc --with-gnu-ld --wi

th-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --dis

able-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --d

isable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --with

out-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enabl

e-hash-synchronization --enable-libstdcxx-debug

Thread model: win32

gcc version 3.4.5 (mingw-vista special r3)

繼續新建一個test.cpp檔案

內容如下

#include <iostream>

using namespace std;

int main(int argc, char** argv)

{

cout << "Yeah, MinGW!" << endl;

return 0;

}

在cmd下面輸入編譯命令

g++ -o test test.cpp

這次是什麼都沒看到就是成功了。

接著輸入test.exe

看見以下的資訊了麼

Yeah, MinGW!

現在,可以在XP下面編寫你的C或者C++程式了。