更多来自
http://imcc.blogbus.com
我的父亲母亲:编译器和链接器
虽然我是Visual Studio创建的,但是实际上,我的老爸和老妈是Visual Studio集成的编译器和链接器。此外,Visual Studio提供的主要是编辑功能,让你更方便地编辑我的源代码。
我老爸编译器的工作是将高级语言C++翻译为低级语言(机器语言)。
我的源文件是使用C++这种高级程序设计语言编写的,便于人们编写、阅读和维护。但计算机不理解高级语言,所以老爸的职责是将源程序翻译成计算机能够解读运行的目标语言(target language)。目标语言通常是汇编语言或目标机器的目标代码(object code),有时也称作机器代码(machine code)。通过老爸的工作,计算机能看懂C++程序,就可以按照源文件中的指令执行相应的动作。
老爸完成我的编译工作后,我还只是一些目标文件,还需要老妈链接器将一个或多个由老爸编译生成的目标文件和库函数链接成可执行文件,这样才诞生了一个可执行的C++程序。再来回顾一下我的诞生过程(如图2-6所示):
图2-6 我的父亲母亲