gcc編譯的四個階段

2021-09-26 21:02:29 字數 804 閱讀 3477

gcc編譯的四個階段

如下圖:

-e preprocess only; do not compile, assemble or link;只預處理,不會編譯、彙編、鏈結

-s compile only; do not assemble or link;只編譯,不會彙編、鏈結

-c compile and assemble, but do not link; 編譯和彙編,不會鏈結

-o place the output into ;指定輸出檔名為file,這個名稱不能跟源檔名同名

1.預處理階段就是將要包含(include)的檔案插入原檔案中、將巨集定義展開、根據條件編譯命令選擇要使用的**,最後將這些**輸出到乙個「.i」檔案中等待進一步處理

gcc -e -o hello.i hello.c

2.編譯階段就是把c/c++**(比如上面的".i"檔案)「翻譯」成彙編**

gcc -s -o hello.s hello.i

3.彙編階段就是將第二步輸出的彙編**翻譯成符合一定格式的機器**,在linux系統上一般表現位elf目標檔案(obj檔案)

gcc -c -o hello.o hello.s

4.鏈結階段就是將彙編生成的obj檔案、系統庫的obj檔案、庫檔案鏈結起來,最終生成可以在特定平台執行的可執行程式。

gcc -o hello hello.o

如果想一步生產可執行檔案 則 使用命令 gcc hello.c -o hello

GCC編譯的四個階段

gcc編譯流程分為4個步驟,分別為 預處理 pre processing 編譯 compiling 彙編 assembling 鏈結 linking 1 預處理階段 在該階段,編譯器將上述 中的stdio.h編譯進來,並且使用者可以使用gcc的選項 e 進行檢視,該選項的作用是把源 進行預處理。預處...

GCC編譯程式時的四個階段說明!

在使用gcc進行程式的編譯時通常要經歷四個階段 通常指的是從源程式到可執行的二進位制 這整個過程 一些以hello.c為例來說明這四個階段。hello.c includeint main gcc的四個階段如下 1.預處理階段 2.編譯階段 3.彙編階段 4.鏈結階段 四個階段的詳細資訊如下 1.預處...

程式編譯的四個階段

預處理將標頭檔案展開,將巨集定義替換,生成符號檔案.s 編譯則包含了詞法檢查,語法檢查,許可權檢查,優化 組裝 將編譯後的 組裝成機器碼,形成位置無關的目標檔案 o 鏈結將多個位置無關的目標檔案合併成可執行檔案 可見組裝才是平台相關的,之前的操作都與平台無關,換句話說是編譯前端和編譯後端 乙個類的成...