C/C++程序编译过程-鸿蒙开发者社区-51CTO.COM

C/C++程序编译过程

jowvid
发布于 2020-9-10 13:13
浏览
0收藏

我们写好一个c文件或者c屁屁文件,然后在IDE中按一下编辑按钮之后,如果没有报错,那么我们写的程序便转变成了可执行文件(windows下的exe文件)。中间经历了什么嘞?

 

如下图所示:

 

C/C++程序编译过程-鸿蒙开发者社区

 

十分清楚明了了吧?从c程序到可执行程序之间的过程还是十分复杂的,要完整的弄清楚这中间的四个阶段需要掌握基本的编译原理知识和汇编指令(翻译)基本内容。下面简要的介绍一下四个阶段的基本工作内容。


1.预处理阶段


    1)这一阶段的主要功能是进行宏替换:读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理:①将#define对应的内容进行替换;②处理所有的条件编译指令,如:“#if”、“#ifdef”、“#elif”、“#else”、“endif”等;③处理“#include”预编译指令,将被包含的文件插入到该预编译指令的位置。


    2)删除注释。


    3)添加行号和文件名标识。


2.编译阶段


    这一阶段就进行编译原理介绍的词法分析、语法分析、语义分析、优化等等过程,生成汇编代码。

 

3.汇编阶段

 

    这一阶段将上一阶段生成的汇编代码进行对应翻译即可。

 

4.链接阶段

 

    通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。

 

 

 

作者:千瞱

来源:CSDN

分类
收藏
回复
举报
回复
    相关推荐