C++輔導(dǎo):C++程序編譯鏈接的原理與過(guò)程

字號(hào):

我們?cè)贓X10這個(gè)工程中,選擇菜單中【Build】→【Rebuild All】,重新編譯所有的工程文件,可以看到如下輸出:
    
    從這個(gè)輸出中,我們可以看到可執(zhí)行程序EX10.exe的產(chǎn)生,經(jīng)過(guò)了兩個(gè)步驟:首先,C++編譯器對(duì)工程中的三個(gè)源文件fish.cpp、animal.cpp單獨(dú)進(jìn)行編譯(Compiling…)。在編譯時(shí),先由預(yù)處理器對(duì)預(yù)處理指令(#include、#define和#if)進(jìn)行處理,在內(nèi)存中輸出翻譯單元(一種臨時(shí)文件)。編譯器接受預(yù)處理的輸出,將源代碼轉(zhuǎn)換成包含機(jī)器語(yǔ)言指令的三個(gè)目標(biāo)文件(擴(kuò)展名為obj的文件):EX10.obj、fish.obj、animal.obj。注意,在編譯過(guò)程中,頭文件不參與編譯;在EX10工程的Debug目錄下,我們可以看到編譯生成的obj文件。接下來(lái)是鏈接過(guò)程(Linking…),鏈接器將目標(biāo)文件和你所用到的C++類庫(kù)文件一起鏈接生成EX10.exe。整個(gè)編譯鏈接的過(guò)程如圖2.18所示。
    
    好了,到此C++的知識(shí)就講解完畢了。當(dāng)然C++的內(nèi)容還有很多,但這一章的內(nèi)容,對(duì)于我們從事VC++開(kāi)發(fā)已經(jīng)足夠了,還有部分C++內(nèi)容,會(huì)在后面的章節(jié)中講解。休息一下,然后繼續(xù)我們的VC++之旅。