Ubuntu之GCC:GCC編譯器的簡(jiǎn)介、安裝、使用方法之詳細(xì)攻略
GCC編譯器的簡(jiǎn)介
? ? ?gcc編譯器是 Linux 下默認(rèn)的 C/C++ 編譯器,大部分 Linux 發(fā)行版中都是默認(rèn)安裝的。GCC 編譯器通常以 Linux 命令的形式在終端(Shell)中使用,它有很多選項(xiàng)。
? ? ? gcc是GNU編譯器套件(GNU Compiler Collection),它包括了C、C++、Objective-C、Fortran、Java、Ada和Go語(yǔ)言的前端,也包括了這些語(yǔ)言的庫(kù)(如libstdc++、libgcj等等)。GCC的初衷是為GNU操作系統(tǒng)專(zhuān)門(mén)編寫(xiě)的一款編譯器。GNU系統(tǒng)是徹底的自由軟件。此處,“自由”的含義是它尊重用戶的自由。
? ? ?gcc的外部接口長(zhǎng)得像一個(gè)標(biāo)準(zhǔn)的Unix編譯器。使用者在命令列下鍵入gcc之程序名,以及一些命令參數(shù),以便決定每個(gè)輸入檔案使用的個(gè)別語(yǔ)言編譯器,并為輸出程序碼使用適合此硬件平臺(tái)的組合語(yǔ)言編譯器,并且選擇性地執(zhí)行連接器以制造可執(zhí)行的程序。
GCC編譯器的安裝
先更新找到gcc,再下載
sudo apt-get update
sudo apt-get install gcc


GCC編譯器的使用方法
? ? ? ?在使用GCC編譯器的時(shí)候,我們必須給出一系列必要的調(diào)用參數(shù)和文件名稱(chēng)。GCC編譯器的調(diào)用參數(shù)大約有100多個(gè),這里只介紹其中最基本、最常用的參數(shù)。具體可參考GCC Manual。
1、GCC最基本的用法是∶gcc [options] [filenames]
其中options就是編譯器所需要的參數(shù),filenames給出相關(guān)的文件名稱(chēng)。
- -c,只編譯,不鏈接成為可執(zhí)行文件,編譯器只是由輸入的.c等源代碼文件生成.o為后綴的目標(biāo)文件,通常用于編譯不包含主程序的子程序文件。
- -o output_filename,確定輸出文件的名稱(chēng)為output_filename,同時(shí)這個(gè)名稱(chēng)不能和源文件同名。如果不給出這個(gè)選項(xiàng),gcc就給出預(yù)設(shè)的可執(zhí)行文件a.out。
- -g,產(chǎn)生符號(hào)調(diào)試工具(GNU的gdb)所必要的符號(hào)資訊,要想對(duì)源代碼進(jìn)行調(diào)試,我們就必須加入這個(gè)選項(xiàng)。
- -O,對(duì)程序進(jìn)行優(yōu)化編譯、鏈接,采用這個(gè)選項(xiàng),整個(gè)源代碼會(huì)在編譯、鏈接過(guò)程中進(jìn)行優(yōu)化處理,這樣產(chǎn)生的可執(zhí)行文件的執(zhí)行效率可以提高,但是,編譯、鏈接的速度就相應(yīng)地要慢一些。
- -O2,比-O更好的優(yōu)化編譯、鏈接,當(dāng)然整個(gè)編譯、鏈接過(guò)程會(huì)更慢。
- -Idirname,將dirname所指出的目錄加入到程序頭文件目錄列表中,是在預(yù)編譯過(guò)程中使用的參數(shù)。C程序中的頭文件包含兩種情況∶ A)#include <myinc.h>? ?B)#include “myinc.h”? ??其中,A類(lèi)使用尖括號(hào)(< >),B類(lèi)使用雙引號(hào)(“ ”)。對(duì)于A類(lèi),預(yù)處理程序cpp在系統(tǒng)預(yù)設(shè)包含文件目錄(如/usr/include)中搜尋相應(yīng)的文件,而B(niǎo)類(lèi),預(yù)處理程序在目標(biāo)文件的文件夾內(nèi)搜索相應(yīng)文件。
- -v gcc執(zhí)行時(shí)執(zhí)行的詳細(xì)過(guò)程,gcc及其相關(guān)程序的版本號(hào)
?