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