C\C++编译流程

总流程:

1.预处理(Preprocessing)

 预处理用于将所有的#include头文件以及宏定义替换成其真正的内容;

 将hello.c预处理输出hello.i文件

2.编译(Compilation)

将经过预处理之后的程序转换成特定汇编代码(assembly code)的过程;

在这个阶段中,gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。

将预处理输出文件hello.i汇编成hello.s文件

3.汇编(Assemble)

汇编过程将上一步的汇编代码转换成机器码(machine code),这一步产生的文件叫做目标文件;

将汇编输出文件hello.s编译输出hello.o文件

4.链接(Linking)

链接过程将多个目标文以及所需的库文件(.so等)链接成最终的可执行文件(executable file).

将编译输出文件hello.o链接成最终可执行文件hello

 图参考:https://www.jianshu.com/p/0ec6cb21bd50 

 

posted @ 2021-07-18 16:39  朱小勇  阅读(301)  评论(0编辑  收藏  举报