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

圖2-6 我的父親母親