gcc編譯詳解

2021-06-02 10:32:27 字數 658 閱讀 3599

test.i

test.s

test.o

#include int main(void)

//預編譯過程:處理巨集定義和include,並做語法檢查

gcc -e test.c -o test.i

cat test.c | wc -l

6cat test.i | wc -l

855//編譯過程:生成彙編**

gcc -s test.i -o test.s

cat test.s |wc -l

29//彙編過程:生成目標**

gcc -c test.s -o test.o

file test.o

test.o:elf 32-bit lsb relocatable, intel 80386, version 1 (sysv), not stripped

/*鏈結過程:生成可執行**鏈結分為兩種,一種是靜態鏈結,另外一種是動態鏈結。使用靜態鏈結的好處是,依賴的動態鏈結庫較少,對動態鏈結庫的版本不會很敏感,具有較好的相容性;缺點是生成的程式比較大。使用動態鏈結的好處是,生成的程式比較小,占用較少的記憶體。

*/gcc test.o -o test

./test

hello world

gcc編譯詳解

這些常用的 gcc g 命令列引數,你都知道麼?1.gcc e source file.c e,只執行到預編譯。直接輸出預編譯結果。2.gcc s source file.c s,只執行到源 到彙編 的轉換,輸出彙編 3.gcc c source file.c c,只執行到編譯,輸出目標檔案。4.g...

gcc編譯指令詳解

一 gcc編譯流程 1.預處理階段 gcc e hello.c o hello.i 說明 1 o 輸出檔案 指定輸出檔案 2 e 只執行編譯預處理 該階段是讀取標頭檔案的內容,並把相應的內容插入到源 預處理結束後停止編譯過程。cat hello.i less 檢視 2.編譯階段 gcc s hell...

gcc編譯引數詳解

gcc引數詳解 介紹 gcc and g 分別是 gnu的 c c 編譯器gcc g 在執行編譯工作的時候,總共需要4步 1.預處理,生成 i的檔案 2.將預處理後的檔案不轉換成組合語言 生成檔案 s 3.有彙編變為目標 機器 生成 o的檔案 4.連線目標 生成可執行程式 引數詳解 c 只啟用預處理...