Linux GCC/G++ 基礎之 - LinuxGCC/G++編譯器
編譯器是將易於編寫、閱讀和維護的高級計算機語言翻譯為計算機能解讀和運行的低級
機器語言的程序。調試器是用於查找源代碼中的錯誤,測試源代碼和可執行文件的工具。GNU項目提供了GCC編譯器、G++編譯器和GDB調試器,這些程序是在Linux系統上使用C和C++語>言進行開發的重要工具。本篇將介紹這些工具的安裝和使用方法。
GCC/G++編譯器
GCC是GNU項目中的一個子項目,最初為用於編譯C語言的編譯器。隨着GNU項目的發展,
GCC已經成為了能編譯C、C++、Ada、Object C和Java等語言的GNU編譯器家族,同時還可執>行跨硬件平台的交叉編譯工作。G++ 則是專門用於編譯C、C++語言的編譯器。C和C++語言正
在不斷發展,為了保持兼容程序語言的最新特性,開發者通常選擇GCC來編譯C語言編寫的源
代碼,選擇G++來編譯C++源代碼。
GCC/G++編譯器的安裝
安裝或更新GCC和G++可在GNU項目的 [官網- www.gnu.org ](www.gnu.org) 下載相應的安裝包,也可以使用YUM 軟件包管理器安裝。其安裝命令如下:
yum install make
//安裝make程序
yum install gcc
//安裝GCC編譯器
yum install gcc-c++
//安裝G++編譯器
注意:如果安裝過程中提示需要選擇編譯器版本,可根據當前硬件平台選擇最新發布的版
本,如果提示需要安裝其他相關軟件包,請一並安裝。
GCC/G++編譯命令
GCC/G++編譯器沒有圖形界面,只能在終端上以命令行的形式運行。編譯命令由命令名、選項和源文件名組成,格式如下:
gcc [-選項1-] [-選項2-] .... [-選項n-] <源文件名>
g++ [-選項1-] [-選項2-] .... [-選項n-] <源文件名>
命令名、選項和源文件名之間使用空格分隔,一行命令中可以有多個選項,也可以只有一個選項。文件名可以包含文件的絕對路徑,也可以實用相對路徑。如果文件名不包含路徑,那么源文件被視為在於工作目錄中。如果命令中不包含輸出的可執行文件名稱,那么默認情況下將在工作目錄中生成后綴為.out的可執行文件。
GCC/G++編譯選項
GCC擁有一百多個編譯選項。對於C語言和C++語言,G++與GCC的編譯選項基本相同。常用的一些編譯選項如下:
編譯選項 | 說明 |
---|---|
-c | 只進行預處理、編譯和匯編,生成.o文件 |
-S | 只進行預處理和編譯,生成.s文件 |
-E | 只進行預處理,產生預處理后的結果到標准輸出 |
-C | 預處理時不刪除注釋信息,常與-E同時使用 |
-o | 指定目標名稱,常與-c、-S同時使用,默認是.out |
-include file | 插入一個文件,功能等同源代碼中的#include |
-Dmacro[=defval] | 定義一個宏,功能等同源代碼中的#define macro[defval] |
-Umaacro | 取消一個宏,功能等同源代碼中的#undefine macro |
-Idir | 優先在選項后的目錄中查找包含的頭文件 |
-Iname | 鏈接后綴為.out的動態鏈接庫來編譯程序 |
-Ldir | 指定編譯搜索庫的路徑 |
-g | 編譯器編譯時加入debug信息 |
-pg | 編譯器編譯時加入信息給gprof |
-share | 使用動態庫 |
-static | 禁止使用動態庫 |
GCC/G++編譯器的執行過程
編譯器的執行過程可總結為4步:預處理、編譯、匯編和連接。在預處理過程中,編譯器會對源代碼中的頭文件和預處理語句進行分析,生成以.i為后綴的預處理文件。編譯過程是將輸入的源代碼編譯為以.o為后綴的目標文件。匯編過程是針對匯編語言的步驟,在便已后成成以.o為后綴的目標文件。最后執行連接過程,所有的目標文件被安排在可執行程序中的恰當位置。同時,該陳旭所調用到的庫函數也從各自所在的檔案庫中連到合適的地方。
- 本博客文章除注明轉載外,均為原創或者翻譯。
- 本博客文章歡迎各種形式的轉載,但請轉載者注明文章出處。
- 本博客原創和翻譯文章均使用markdown格式發布,如需 源碼 轉載請留言。
- 本文標題:Linux GCC/G++ 基礎(1) 之 - LinuxGCC/G++編譯器
- 本文鏈接:http://www.cnblogs.com/banshine/p/5041584.html