C程序到可執行程序的編譯連接過程
預處理-->編譯-->彙編-->連接
預處理用於將全部的#include頭文件以及宏定義替換成其真正的內容
編譯指將通過預處理以後的程序轉換成特定彙編代碼(assembly code)的過程
彙編過程將上一步的彙編代碼轉換成機器碼(machine code),這一步產生的文件叫作目標文件,是二進制格式
連接過程將多個目標文以及所需的庫文件(.so等)連接成最終的可執行文件(executable file)spa
xxx.c 源代碼 xxx.i 預處理後的代碼 xxx.s 彙編代碼 xxx.out 連接器輸出
Directive Meaning
# include 包括一個源文件
# define 定義宏
# undef 取消定義一個宏