GCC編譯C程式的四個步驟

2021-06-06 22:47:02 字數 493 閱讀 4166

最近在看ram下的彙編以及優化。順便看了下用gcc編譯的過程。

用helloworld.c 來說明問題;

1.預編譯:

gcc -e helloworld.c -o helloworld.i

在這一步之後,生成的.i檔案會比你的.c檔案大很多。裡面包含著你的.c中包含的標頭檔案的內容,以及一些預處理**等。(必須使用大寫的e才行)

2.編譯:

gcc -s helloworld.i -o helloworld.s

在這一步之後,看到你的**又變小很多了相比.i檔案來說。生成的了彙編檔案。(必須大寫s)

3.彙編:

gcc -c helloworld.s -o helloworld.o

這一步之後生成了elf格式的目標**。(必須小寫c)

gcc helloworld.o -o helloworld

這一步生成了可執行的程式。

說明:-o 表示生成的檔名,否則會預設輸出a.out。

gcc編譯的四個階段

gcc編譯的四個階段 如下圖 e preprocess only do not compile,assemble or link 只預處理,不會編譯 彙編 鏈結 s compile only do not assemble or link 只編譯,不會彙編 鏈結 c compile and asse...

GCC編譯的四個階段

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

ROS catkin編譯的四個步驟

1.宣告依賴庫。首先,我們需要宣告程式所依賴的其他功能包。為了給出依賴庫,編輯包目錄下的 cmakelists.txt 檔案。該文 件的預設版本含有如下行 find package catkin required 所依賴的其他 catkin 包可以新增到這一行的 components 關鍵字 後面,...