当前位置:首页 > 编程笔记 > 正文
已解决

c++源码编译过程(翻译阶段)的若干细节概要

来自网友在路上 168868提问 提问时间:2023-09-25 03:11:43阅读次数: 68

最佳答案 问答题库688位专家为你答疑解惑

c++程序的编译主要包含两个阶段:源码编译(翻译阶段)和目标文件链接。

源码编译过程主要有如下这些阶段:

  阶段1:  翻译源码文本字符
  阶段2:  逻辑源码行标准化处理
  阶段3:  文法处理,分解为不同的源码文本类型序列。例如分解为注释、预处理指令、标识符,以一个空格字符替换每段注释等操作等等。
 阶段4:  执行预处理器,执行所有预处理,并在处理完成后将所有预处理指令从源码中移除
 阶段5:  构造执行字符集
 阶段6: 拼接相邻的字符串字面量
 阶段7: 进行编译:将各个预处理记号转换成记号。将所有记号当作一个翻译单元进行语法和语义分析并进行翻译。
 阶段8: 检验每个翻译单元,产生所要求的模板实例化的列表,其中包括显式实例化所要求的实例化。定位模板定义,并进行所要求的实例化,以产生实例化单元。
 阶段9: 将翻译单元、实例化单元和为满足外部引用所需的库组件汇集成一个程序映像,它含有在它的执行环境中执行所需的信息。可以理解为生成了.obj或者.o文件。

后续就进入链接过程了。

细节请见: Phases of translation - cppreference.com

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"c++源码编译过程(翻译阶段)的若干细节概要":http://eshow365.cn/6-13188-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!