c++从文本文件到可执行文件的过程

预处理阶段:头文件展开、宏替换、条件编译(#ifdef等)

编译阶段:将经过预处理后的预编译文件转换成特定汇编代码,生成汇编文件;包括:
词法分析阶:读入源程序,对构成源程序的字符流进行扫描和分解,识别出单词,
语法分析:机器通过词法分析,将单词序列分解成不同的语法短语,确定整个输入串能够构成语法上正确的程序。
语义分析:检查源程序上有没有语义错误,在代码生成阶段收集类型信息
中间代码生成:在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式
代码优化:这一阶段的任务是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间
目标代码生成:这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码

汇编阶段:将编译阶段生成的汇编文件转化成机器码,生成可重定位目标文件(目标文件用于函数的重定位)

链接阶段:将多个目标文件及所需要的库连接成最终的可执行目标文件

发布了141 篇原创文章 · 获赞 27 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/a13602955218/article/details/105281963