一個C檔案要經過預處理、bianyi編譯、彙編和連接配接才能變成可執行檔案。
1.預處理
源檔案中,以‘#’開頭的指令被稱為預處理指令。如包含“#include”、“#define”、“#if”和“#ifdef”等。預處理就是将包含的檔案插入到原檔案中,将宏定義展開,根據條件編譯指令選擇要使用的代碼,最後将這些代碼輸出帶一個".i"的檔案中等待進一步處理。預處理将用到arm-linux-cpp工具。
2.編譯
編譯就是把C代碼比如上述的.i檔案翻譯成彙編代碼。所用到的工具為ccl.
3.彙編
彙編就是将上述的彙編代碼翻譯成符合一定格式的機器代碼,在linux上一般表現為elf目标檔案(OBJ檔案),用到的工具為arm-linux-as,“反彙編”是指将機器代碼轉化為彙編代碼。
4.連接配接
連接配接就是将上述生成的OBJ檔案跟系統庫的OBJ檔案、庫檔案連接配接起來,最終生成可以在特定平台上運作的可執行檔案。用到的工具為arm-linux-ld。