编译器概论

gcc编译器 将hello.c文本文件转化为hello可执行文件的过程:

1.预处理

2.编译(狭义)

3.汇编

4.链接

上述过程也统称为编译。但是之后所提到的编译指第二步狭义编译,4步统称为bulid

 

预处理:

C语言的代码首先由预处理器对 #include和 #define进行处理。具体来说,就是读入头文件,将所有的宏展开。预处理是纯文本操作,不考虑C语言语法的含义。

(狭义)编译:

接着,编译器对预处理器的输出进行编译,生成汇编语言的代码。一般来说,汇编语言的代码的文件的扩展名是".s"。

汇编:

然后,汇编语言的代码由汇编器转换为机器语言,这个处理过程称为汇编。汇编器的输出称为目标文件。一般来说,目标文件的扩展名是".o"。

链接:

目标文件本身还不能直接使用,无论是直接运行还是作为程序库(library)文件调用都不可以。将目标文件转换为最终可以使用的形式的处理称为链接(link)。使用程序库的情况下,会在这个阶段处理程序库的加载。

posted @ 2018-09-07 15:48  bosslv  阅读(130)  评论(0编辑  收藏  举报