gcc是乙個c語言編譯器,全程為gnu c compiler的英文縮寫。gcc具有交叉編譯功能,即在乙個平台下編譯另乙個平台的**。
gcc支援的字尾名解釋:
.c //c語言源**檔案
.a //有目標構成的檔案庫檔案,靜態庫檔案
.c .cc 或 .cxx //c++源**檔案
.h //程式所包含的標頭檔案
.i //已經與處理過的c原始碼檔案
.ii //已經與處理過的c++原始碼檔案
.m //objective-c原始碼檔案
.o //編譯後的目標檔案
.s //組合語言原始碼檔案
.s //經過預編譯的彙編原始碼檔案
編譯過程四個步驟:
預處理(對原始碼中的檔案,標頭檔案及巨集定義等進行分析) --------------》編譯(生成「.o」的目標檔案) ----------------》彙編(針對組合語言的操作,呼叫as進行工作,彙編原始碼一般經過預編譯和彙編後都生成了「.o」目標檔案了) -------------------》鏈結(所有目標檔案都生成後,呼叫ld將所有的目標檔案和呼叫的庫函式安排在可執行檔案中適當的位置)。
gcc的編譯選項表:
-c //只編譯生成「.o」的目標檔案,不鏈結成可執行檔案。通常用於編譯不包含主程式的子程式檔案。
-o filename //確定輸出的檔名為filename,預設filename則為a.out。
-g //在編譯時加入除錯資訊,可用於gdb的除錯。
-o //對程式在編譯、鏈結時進行優化處理,產生的可執行檔案的效率可以提高,但是編譯鏈結的速度相應就要慢一些。
-o2 //對程式的優化比「-o」更好,編譯和鏈結的速度會更慢一點。
-i dirname //將dirname路徑中的檔案加入到程式標頭檔案目錄列表中(即-iinclude)。
-l dirname //將dirname路徑加入到程式庫檔案目錄列表中(即包含搜尋的路徑)。
-static //鏈結靜態庫,使用靜態庫函式時要加上該選項。
-e //只進行預編譯,不做其他處理
-v //列印編譯器內部編譯各個過程的命令列資訊和編譯器版本。
-s //只編譯不彙編,生成 彙編**。
-llibname //為「-」小寫「l」,「libname」為「lib+庫名」的庫函式,使用選項時只要寫庫名即可(libpthread,-lpthread)。
-wall //產生全部的警告資訊。
-pipe //在編譯過程的不同階段使用管道而非臨時檔案通訊。
strip的使用:
在gcc編譯的可執行檔案或者庫函式感覺單用記憶體比較大時,可以使用 「strip」 將編譯完的可執行檔案或者庫函式的占用容量縮小,但是strip後的檔案不可恢復。
linux編輯器使用記錄
超強大vim配置檔案 wget unzip f vimrc.zip d 一 vim編輯器 進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi patt...
Linux中vi編輯器使用
vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi pattern filename 開啟檔案,並將游標置於第乙個與pattern匹配的串處 移動游標類命令 b h ...
Linux系統vi編輯器使用
一 建立 開啟檔案 vi 檔名 若是已存在的檔案則開啟,若不存在則可以進行建立。二 編輯檔案 按鍵盤上的 i 鍵,即可進入編輯模式,此時在左下角會出現 insert 字樣。若要回到原來的模式,按下鍵盤上的esc鍵即可。三 儲存或退出命令 常用命令,在編輯模式下先按下鍵盤上的esc鍵,再輸入下面的命令...