C语言的“编译、链接”
2018-02-27 23:42
211 查看
我们写的代码,仅仅是文本文件(txt),不管后缀怎么变,终究是文本文件,计算机只能显示,不能做事(执行)。
文本文件通过“编译、链接”,成为可执行文件(windows下是exe):
编译:生成.o文件,也被称为“对象文件”、“目标文件”。
链接:将有关的目标文件连接起来,使所有的.o文件成为一个可执行的整体。
为什么要生成“.o文件”?这不是多此一举嘛?
——大型程序往往需要分文件写,每个源文件会生成对应的.o文件,修改其中一个源文件,编译时只重新编译该文件。如果编译直接生成最终文件,改一个文件则整个工程都要重新编译。
.o好比活字印刷的一个字,错了直接重刻一个字就好了,而不用整版重刻。
编译又分为“预编译”、“编译”两个步骤:
预编译(Preprocessing):读取c源程序,对其中的伪指令(以#开头的指令)进行替代。【好比发帖时,不能出现的字用X代替】,输出的还是文本文件。
编译(Compilation):将预编译后的文件翻译成机器码,生成.o文件。
(某些编译器会先转为汇编码,然后再转为机器码,所以有的地方会说编译包括“预编译、编译、汇编”3步)
打个比方——
写代码:买菜
预编译:切菜
编译:炒菜
链接:上桌
文本文件通过“编译、链接”,成为可执行文件(windows下是exe):
编译:生成.o文件,也被称为“对象文件”、“目标文件”。
链接:将有关的目标文件连接起来,使所有的.o文件成为一个可执行的整体。
为什么要生成“.o文件”?这不是多此一举嘛?
——大型程序往往需要分文件写,每个源文件会生成对应的.o文件,修改其中一个源文件,编译时只重新编译该文件。如果编译直接生成最终文件,改一个文件则整个工程都要重新编译。
.o好比活字印刷的一个字,错了直接重刻一个字就好了,而不用整版重刻。
编译又分为“预编译”、“编译”两个步骤:
预编译(Preprocessing):读取c源程序,对其中的伪指令(以#开头的指令)进行替代。【好比发帖时,不能出现的字用X代替】,输出的还是文本文件。
编译(Compilation):将预编译后的文件翻译成机器码,生成.o文件。
(某些编译器会先转为汇编码,然后再转为机器码,所以有的地方会说编译包括“预编译、编译、汇编”3步)
打个比方——
写代码:买菜
预编译:切菜
编译:炒菜
链接:上桌
相关文章推荐
- C语言预处理 编译 汇编 链接四个阶段
- 菜鸟在C语言编译,链接时可能遇到的两个问题
- C语言编译和链接和加载
- C语言文件编译链接的过程小问题1--extern结构体和函数
- C语言的编译链接过程的介绍
- C语言学习篇-1Hello, World!(编写、编译、链接、运行)
- C语言-编译与链接
- 菜鸟在C语言编译,链接时可能遇到的两个问题
- C语言的编译链接过程的介绍
- c语言中编译链接的整个过程
- 我也要学C语言(威力加强版)_第一章:WINDOWS平台下CL编译器下helloworld的编写,编译与链接
- (编译-链接)-C语言学习笔记1
- C语言编译、链接过程
- C语言的编译链接过程详解
- C语言之编译链接全过程分析
- C语言的编译链接过程
- 细谈C语言中的编译和链接
- 【C语言】编译链接的详细过程
- c语言编译和链接几个项目的具体过程 在linux下
- C语言中的编译和链接