在Windows操做系統下的gcchtml
第一節 GCC家族概覽c++
GCC是一個本來用於Unix-like系統下編程的編譯器。
不過,如今GCC也有了許多Win32下的移植版本。因此,也許對於許多Windows開發者來講,GCC仍是一個比較陌生的東西。因此,我但願經過這章的敘述,讓你——一個Windows開發者對GCC這一個優秀的編譯器有一個大概的瞭解。
歷史
GCC是GNU公社的一個項目。是一個用於編程開發的自由編譯器。最初,GCC只是一個C語言編譯器,他是GNU C Compiler 的英文縮寫。隨着衆多自由開發者的加入和GCC自身的發展,現在的GCC以經是一個包含衆多語言的編譯器了。其中包括 C,C++,Ada,Object C和Java等。因此,GCC也由原來的GNU C Compiler變爲GNU Compiler Collection。也就是 GNU編譯器家族 的意思。固然,現在的GCC藉助於他的特性,具備了交叉編譯器的功能,即在一個平臺下編譯另外一個平臺的代碼。程序員
直到如今,
GCC
的歷史仍然在繼續,他的傳奇仍然被人所傳頌。
Windows
下的
GCC
家族
起初,
GCC
是用於
Unix,Unix-like
系統的編譯器。不過,如今
Windows
下也出現了
GCC
的穩定移植版。這要感謝
Internet
上衆多程序員的共同努力。
現在,在Windows下比較流行的GCC移植版主要有三個。他們是 MinGW,Cygwin和Djgpp。雖然,Djgpp是應用於DOS系統的,考慮到windows對DOS的兼容,因此也將Djgpp歸入其中了。編程
整體來講,
MinGW
,
Cygwin
和
Djgpp
各有特點,針對不一樣的應用場合,能夠選擇不一樣的移植版來知足須要。
MinGW
這個系列的移植,主要方向是讓
GCC
的
Windows
移植版能使用
Win32API
來編程。而
Cygwin
的目標是能讓
Unix-like
下的程序代碼在
Windows
下直接被編譯。至於
Djgpp
,則是想讓
DOS
下也能用上
GCC
。
因此,對於開發人員不一樣的需求。選擇合適的移植版會讓工做變得輕鬆而高效。
本書的
GCC
我我的對
GCC
的移植版都很是喜歡。不管是
MinGW
仍是
Cygwin
,亦或是
Djgpp
。在本書中,除了特殊說明之外,所述的內容適合全部這三種移植版。
不過,考慮到如今在
Windows
下用的比較多的是
MinGW
系列。再加上
MinGW
較
Cygwin
和
Djgpp
安裝和使用更爲簡便。因此,建議讀者學習時仍是使用
MinGW
。
第二節 入鄉隨俗的MinGWwindows
簡介
MinGW是Minimalistic GNU for Windows 的縮寫。她是一個創建在GCC和binutils 項目上的編譯器系統。和其餘GCC的移植版相比,她能夠說是最接近Win32的一個了。由於,MinGW幾乎支持全部的Win32API,這也是MinGW的特點之一。她所鏈接的程序,不須要任何第三方庫就能夠運行了。在某種程度上看,MinGW更像是VC的替代品。api
得到與安裝
MinGW能夠從MinGW的官方網站 http://www.mingw.org 上得到。函數
若是,你要安裝
MinGW
,那麼你有兩種安裝方案。下面我來一一介紹。
安裝方案一:
首先,你要從 http://www.mingw.org/download.shtml 上下載以下幾個壓縮包。考慮到文件的更新和文章的靈活性。我將只寫出文件的主要部分,將省去版本好和更新日期。工具
gcc-core |
C語言編譯器 |
gcc-c++ |
C++語言編譯器 |
mingw-runtime |
MinGW的運行時庫(這個必須安裝) |
win32apipost |
win32的API函數頭文件和鏈接庫 |
binutils學習 |
MinGW的彙編器和鏈接器等基礎工具 |
gdb |
MinGW中的調試工具 |
mingw32-make |
Make工具,用以更好的管理你的項目 |
而後,將上述文件逐一下載,而後所有解壓縮到一個目錄下就能夠了,我這裏假設你是移動到
$(MINGW)
這個目錄下了。這樣,你的
MinGW
就算安裝成功了。
最後到DOS終端上,將當前目錄轉換成 $(MINGW)/bin 下。輸入
看到一段
gcc
的版本信息,這就能說明,你的
gcc
已經能夠正常工做了。
安裝方案二:
你能夠從 http://www.mingw.org/download.shtml 上下載 MinGW5.0.2.exe 這個程序。至少,在我寫此文的時候,這個是最新版本。
下載之後運行安裝,至於安裝過程,我想我就不一一介紹了。對於
Windows
下的開發人員,我想這個應該不是什麼問題了。
在一切都選擇好之後。這個程序就開始從
Internet
上下載所須要的壓縮包。而後,逐一解開,安裝。
整體來講,兩種方法各有長處。不過,本人偏心第一中方法。由於,控制度高,並且,更新也比較簡單。本身內心也比較明瞭。
環境設置:
對於咱們這些使用者來講,最好是可以簡單方便的使用工具。因此,咱們就須要設置環境,便於咱們使用
MinGW
。
對於設置,咱們只須要在環境變量中的PATH 變量中,添加$(MINGW)/bin這個路徑就能夠了。
這樣,你就能夠在任何目錄下使用
MinGW
了。
第三節 人在曹營心在漢的Cygwin
介紹
Cygwin
,其實並非一個
GCC
。她是讓
Windows
擁有
Unix-like
環境的軟件。因此,
GCC
天然也就會包含在裏面。不過,對於開發者,
Cygwin
是一個開發環境。而對於用戶來講
Cygwin
是一個運行環境。
Cygwin
惟一和
MinGW
最大的區別在於,使用
Cygwin
能夠在
Windows
下調用
Unix-like
的系統函數。好比進程函數,等等。因此,雖說,
Cygwin
是運行在
Windows
下的,可是她仍是使用的是
Unix-like
系統的函數和思想。
得到與安裝
Cygwin能夠從Cygwin的官方網站得到安裝程序 http://www.cygwin.com/
在網站上下載
Cygwin
的安裝程序
setup.exe
。而後運行即可以了。
關於前面的設置,我想不用多作介紹了。由於,對於這些我想
Windows
下的開發人員應該至關清楚了。
在到了選擇安裝的組件時,在Devel 選項下,將gcc-core,gcc-g++ 等前的skip 點擊成你所須要的版本號。
而後在 Lib選項卡中,將glib2,glib2-devel,glib2-runtime前的skip點成版本號。
接下來,就點擊
next
就能夠了。在一段漫長的等待時間後,你的
Cygwin
開發環境就算安裝好了。
相對來講,
Cygwin
的安裝和配置都比較簡單。由於,
Cygwin
提供了一個比較健全的安裝程序。
使用
在安裝目錄下,運行
cygwin.bat
就能夠啓動
cygwin
環境了。這是一個模擬
Linux
的環境,因此不少地方可能和
Dos
有比較大的差距。不過,你編譯出的程序能夠直接在其餘沒有安裝
Cygwin
的機器上運行。還有,若是要切換到
windows
下的其餘盤下,好比
D
盤。那麼就可使用
對於
Cygwin
更多關於使用的內容,你能夠到
Linux
社區去得到參考。
第四節 腳踏兩隻船的Djgpp
介紹
Djgpp
,是一個在純
Dos
下的
GCC
移植版本。她使用一些軟件將純
Dos
設置成
32
位的環境,並運行由她編譯出來的程序。整體來講,
Djgpp
並非一個
Windows
的移植版。不過,她確實能夠在
Windows
下運行。對於一些特殊應用。
Djgpp
是惟一適合的。
得到與安裝
Djgpp,能夠從Djgpp的官方網站上下載 http://www.delorie.com/djgpp/
不過,這裏
Djgpp
爲用戶作了更好多的安排。她爲用戶提供了一個定製安裝的頁面。
您只須要在上面填寫響應的內容,而後遞交。她將會給你一份完整的安裝方案。
使用
相對來講,
Djgpp
我並非常用。因此,本文中在沒有特殊說明狀況下,不會使用
Djgpp
的。
文外音:
整體來講,這篇文章寫的有些匆忙。因此可能有些地方有不足。因此,但願各位可以多多原諒批評和指教。下一章,我將介紹GCC for Win32的IDE。同時,從這一章開始,我將向各位讀者作一個小小的要求。那就是,但願大家可以將本身對這篇文章感到的不足告訴我,我將隨時修改以發表的內容,以適合廣大讀者的要求。若是各位有什麼想法或者意見,疑惑。