2.4.6 了解编译器的组织
C++ 编译器软件包由前端、优化器、代码生成器、汇编程序、模板预链接程序和链接编辑器组成。CC 命令会自动调用其中每个组件,除非使用命令行选项进行其他指定。
因为这些组件中的任何一个都可能生成错误,并且各个组件执行不同的任务,所以识别生成错误的组件可能很有帮助。使用 -v 和 -dryrun 选项可以显示编译器执行期间的更多详细信息。
正如下表所示,不同编译器组件的输入文件拥有不同的文件名后缀。后缀建立了要进行的编译类型。有关文件后缀的含义,请参阅Table 2–1。
表 2-2 C++ 编译系统的组件 | | |
|
前端(编译器预处理程序和编译器)
|
|
|
代码优化器
|
-xO[2-5], -fast
|
|
SPARC: 汇编语言模板的内联扩展
|
指定 .il 文件
|
|
汇编程序
|
|
|
SPARC: 代码生成器、内联函数、汇编程序
|
-xO[1-5], -fast, -std=c++11
|
ube
|
x86:代码生成器
|
-xO[1-5], -fast, -std=c++11
|
|
模板预链接程序
|
仅与 -instances=extern 选项一起使用
|
|
链接编辑器
|
|
|