以GCC編譯器為例,可以分為四步。
第一步是預(yù)處理,包括語法檢查等工作。
gcc-Pabc.
c第二步由源程序生產(chǎn)匯編語言代碼。
gcc-Sabc.c會生成abc.s文件,這個文件里就是匯編代碼。
第三步編譯器生成目標(biāo)代碼,一個源文件生成一個目標(biāo)代碼。
gcc-cabc.c會生成abc.
o第四步連接器從目標(biāo)代碼生成可執(zhí)行文件。gccabc.o目標(biāo)代碼包括機(jī)器碼和符號表(函數(shù)及變量名)。
連接器的主要作用是通過符號表在庫文件和其他模塊中找到在目標(biāo)代碼中引入或未定義的符號(函數(shù)及變量名),將幾個目標(biāo)代碼合成可執(zhí)行文件。