您的位置:首页 > 编程语言 > C语言/C++

C语言的“编译、链接”

2018-02-27 23:42 211 查看
我们写的代码,仅仅是文本文件(txt),不管后缀怎么变,终究是文本文件,计算机只能显示,不能做事(执行)。

文本文件通过“编译、链接”,成为可执行文件(windows下是exe):

编译:生成.o文件,也被称为“对象文件”、“目标文件”。

链接:将有关的目标文件连接起来,使所有的.o文件成为一个可执行的整体。




为什么要生成“.o文件”?这不是多此一举嘛?

——大型程序往往需要分文件写,每个源文件会生成对应的.o文件,修改其中一个源文件,编译时只重新编译该文件。如果编译直接生成最终文件,改一个文件则整个工程都要重新编译。

.o好比活字印刷的一个字,错了直接重刻一个字就好了,而不用整版重刻。



编译又分为“预编译”、“编译”两个步骤:

预编译(Preprocessing):读取c源程序,对其中的伪指令(以#开头的指令)进行替代。【好比发帖时,不能出现的字用X代替】,输出的还是文本文件。

编译(Compilation):将预编译后的文件翻译成机器码,生成.o文件。

(某些编译器会先转为汇编码,然后再转为机器码,所以有的地方会说编译包括“预编译、编译、汇编”3步)




打个比方——

写代码:买菜

预编译:切菜

编译:炒菜

链接:上桌

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: