c/c++ 可执行文件生成过程

如上图,c可执行文件的生成分为方框中的四个步骤:

1、预处理:预处理的结果还是一个c文件,只不过以.i为后缀。所谓预处理,处理的是以#开头的东西,比如说#include,预处理器会读取文件stdio.h将文件内容直接插入在#include,处。此外还会处理,#define宏。

2、ccl将.i转换为汇编语言(组合语言),每条汇编语句都描述一条机器指令。汇编语言为不同编译器、不同高级语言提供一种通用的输出语言。比如说C和Fortran生成的汇编语言是一样的。

3、转换为机器指令。.o文件是一个二进制文件,使用机器指令编码而不是使用字符编码。所以如果使用文本编辑器查看.o文件,看起来将是一片混乱。

4、链接阶段。我们的c程序可能用到其他已经编译好的.o文件。比如,使用printf就使用了printf.o文件,所以printf.o文件必须和我们的.o文件融合。连接器执行这个融合工作,并生成可执行文件。

 

C++的编译过程与c类似,先转成c,然后再进行其他过程。

你可能感兴趣的:(computer,system,basic)