1. 程式人生 > 其它 >C 程式編譯的四個步驟

C 程式編譯的四個步驟

C 程式編譯的四個步驟

編寫好的 C 程式原始碼 (*.c) 是個某種編碼格式下的文字檔案,需要被 “翻譯” 成機器語言表示的可執行程式,這個過程被稱為 編譯 。(此處的 編譯 是下文四個步驟的統稱,與步驟二有所區分。)

C 程式的編譯過程可以分為以下四個步驟:

  1. 預處理 (Preprocessing)
  2. 編譯 (Compilation)
  3. 彙編 (Assemble)
  4. 連結 (Linking)

預處理 (Preprocessing)

預處理過程讀取 C 程式原始碼 (*.c) 的文字內容,按照預處理指令 (例如標頭檔案包含、巨集定義等) 替換 相應的文字內容。

預處理過程的輸出檔案仍然是文字檔案 (*.i) ,但是檔案體積比輸入檔案大。

編譯 (Compilation)

編譯過程將預處理後的程式文字 (*.i) 轉換成彙編程式碼 (Assembly Code / *.s) 。

彙編 (Assemble)

彙編過程將彙編程式碼 (*.s) 轉換成與指定硬體相匹配的機器碼 (Machine Code) 。

彙編過程的輸出檔案被稱為目標檔案 (*.o) ,這是一種是二進位制檔案。
對於每一個原始碼檔案 (*.c) ,彙編後將產生相應的目標檔案。

連結 (Linking)

連結過程將專案中的多個目標文以及所需的庫檔案連結成最終的可執行檔案 (Executable File) 。