編譯的作用
讀取源程序(.cpp)更耻,進(jìn)行詞法和語法的分析,將高級(jí)語言指令轉(zhuǎn)換為功能等效的匯編代碼罚渐,再轉(zhuǎn)換為機(jī)器代碼却汉,生成目標(biāo)文件(.obj)。最后將不同的編譯單元鏈接成一個(gè)可執(zhí)行文件(.exe)
C++的編譯過程包括
step1 預(yù)編譯
step2 匯編
step3 編譯
step4 鏈接
預(yù)編譯:主要展開頭文件荷并、宏定義等合砂。
匯編:把已經(jīng)預(yù)編譯的文件編譯成匯編代碼,整個(gè)過程包含語法源织、詞法的分析翩伪,和一些優(yōu)化操作。
編譯:將匯編代碼變成目標(biāo)代碼谈息,即生成二進(jìn)制文件(.obj)
鏈接:將單個(gè)編譯后的文件鏈接成一個(gè)可執(zhí)行文件缘屹。
前面的預(yù)編譯、匯編侠仇、編譯都是針對單個(gè)文件轻姿,以一個(gè)文件為一個(gè)編譯單元,而鏈接則是將所有關(guān)聯(lián)到的編譯后的單元文件和應(yīng)用到的庫文件逻炊,進(jìn)行一次鏈接處理互亮,之前編譯過的文件如果有用到其他文件里面定義到的函數(shù)、全局變量余素,在這個(gè)過程中會(huì)進(jìn)行解析豹休。