1)gcc編譯器能將c、c++語言源程式、組合語言編譯、鏈結成可執行檔案。
2)gcc通過字尾名來區分輸入檔案的類別:
.c為字尾:c語言源**檔案
.a為字尾:由目標檔案構成的庫檔案
.c,.cc或.cxx為字尾:c++源**檔案
.h為字尾:標頭檔案
.i為字尾:已經預處理過的c源**檔案
.ii為字尾:已經預處理過的c++源**檔案
.o為字尾:編譯後的目標檔案
.s為字尾:組合語言源**檔案
.s為字尾:經過預編譯的組合語言源**
3)gcc最基本的用法:
gcc [options] [filenames]
options:編譯所需要的編譯選項
filenames:要編譯的檔名
4)基本、常用的編譯選項:
-o output_filename :確定可執行檔案的名稱為output_filename。如果不 給出該選項,gcc就給出缺省的可執行檔案a.out
-c :只編譯,不連線成可執行檔案,編譯器只是由輸入的.c等原始檔生成.
為字尾的目標檔案
-g :產生除錯工具(gnu的gdb)所必要的符號資訊,要想對編譯出的程式
行除錯,就必須加入這個選項
接過程中進行優化處理。這樣產生的可執行檔案的執行效率可以提高,
但是編譯、鏈結速度就相應變慢
試執行可執行檔案的執行時間,要顯示執行時間是在執行命令前加tim
即可,如: time ./a.out 表示執行a.out,同時顯示執行時間
-idirname :將dirname所指出的目錄加入到程式頭檔案目錄列表中。例:
gcc foo.c -i/home/include -o foo
-ldirname :將dirname所指出的目錄加入到庫檔案的目錄列表中。在預設狀
態下,鏈結程式ld在系統的預設路徑中(如/usr/lib)尋找所需要的庫文
件,這個選項告訴鏈結程式,首先到-l指定的目錄中去尋找,然後再到
系統預設路徑中尋找
「libm.a」的數學函式庫。例:
gcc foo.c -l/home/lib -lfoo -o foo
動態與靜態兩種,動態庫常用.so為字尾,靜態用.a為字尾。linux下進
鏈結的預設操作是首先鏈結動態庫。
-wall :生成所有警告資訊
-w :不生成任何警告資訊
-dmacro :定義macro巨集,等效於程式中使用#define macro
gcc編譯C 程式
單個原始檔生成可執行程式 下面是乙個儲存在檔案 helloworld.cpp 中乙個簡單的 c 程式的 helloworld.cpp include int main int argc,char argv 程式使用定義在標頭檔案 iostream 中的 cout,向標準輸出寫入乙個簡單的字串。該 可...
gcc編譯C 程式
單個原始檔生成可執行程式 下面是乙個儲存在檔案 helloworld.cpp 中乙個簡單的 c 程式的 helloworld.cpp include int main int argc,char argv 程式使用定義在標頭檔案 iostream 中的 cout,向標準輸出寫入乙個簡單的字串。該 可...
GCC編譯程式
gcc gnu compiler collection 是linux下最主要的一種編譯工具。gcc編譯格式 gcc 選項 源檔名 選項 目標檔名 採用預設得方式編譯原始檔,系統會生成a.out可執行檔案 採用顯式編譯成目標檔案,在編譯成可執行檔案 gcc c hello.c 生成hello.o gc...