Linux GCC/G++ 基礎(1) 之 - LinuxGCC/G++編譯器


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM