更多來自
http://imcc.blogbus.com
我的父親母親:編譯器和鏈接器
雖然我是Visual Studio創(chuàng)建的,但是實(shí)際上,我的老爸和老媽是Visual Studio集成的編譯器和鏈接器。此外,Visual Studio提供的主要是編輯功能,讓你更方便地編輯我的源代碼。
我老爸編譯器的工作是將高級(jí)語言C++翻譯為低級(jí)語言(機(jī)器語言)。
我的源文件是使用C++這種高級(jí)程序設(shè)計(jì)語言編寫的,便于人們編寫、閱讀和維護(hù)。但計(jì)算機(jī)不理解高級(jí)語言,所以老爸的職責(zé)是將源程序翻譯成計(jì)算機(jī)能夠解讀運(yùn)行的目標(biāo)語言(target language)。目標(biāo)語言通常是匯編語言或目標(biāo)機(jī)器的目標(biāo)代碼(object code),有時(shí)也稱作機(jī)器代碼(machine code)。通過老爸的工作,計(jì)算機(jī)能看懂C++程序,就可以按照源文件中的指令執(zhí)行相應(yīng)的動(dòng)作。
老爸完成我的編譯工作后,我還只是一些目標(biāo)文件,還需要老媽鏈接器將一個(gè)或多個(gè)由老爸編譯生成的目標(biāo)文件和庫函數(shù)鏈接成可執(zhí)行文件,這樣才誕生了一個(gè)可執(zhí)行的C++程序。再來回顧一下我的誕生過程(如圖2-6所示):

圖2-6 我的父親母親