【C】编译和链接
我的个人博客:https://www.wuyizuokan.com
一份源代码要生成一份可以运行的程序,需要经过的步骤就是编译和链接。
C语言的源代码一般以.c和.h结尾,其中的C语言代码属于比较高级的语言,人类可以很轻易的看懂,但是计算机并不能理解,也不能直接运行。计算机只能识别二进制的数据,C代码这种类似于人类自然语言的高级语言,它是不能识别的。
所以C语言需要先进行编译,这份工作是通过编译器来完成的。C语言的编译器有很多,比较常用的是GCC(Linux下的C编译器,当然也有人将其移植到了Windows系统中),MSVC(微软提供的编译器,和VS一起使用)
编译器编译C源码文件,生成目标文件(.obj),这时候的目标文件还不能运行,需要再经过一步链接,链接是将多个目标文件和系统提供的一些组件链接到一起,形成一个可以载入到操作系统中运行的可执行文件。
这里,编译阶段中还可以分为三个小阶段:
预处理阶段:
1、处理以#开头的预编译指令,如,#define.
2、处理条件预编译指令,如#if,#elif, #else, #endif
3、处理#include
4、删除注释。
.....
编译阶段:
词法分析、语法分析、语义分析等。
汇编阶段:
把代码编译为汇编文件,一般会有代码段和数据段的生成。
时间总是悄悄流逝