gcc - GCC 的通行证和调用的程序是什么?

标签 gcc code-generation compiler-theory

它出现在 another question :gcc调用的程序和部件是什么? (特别是在编译 CC++ 时)以便有人可以设计一些拦截和更改流程的方案以用于各种自定义编码目的?

最佳答案

编译器二进制文件是“编译器驱动程序”(即 gcc ),编译器本身也兼作预处理器( cc1cc1plus )。它还调用汇编器( as )和链接器( ld )。此外还有一个名为 collect2 的工具在某些情况下,这有助于链接过程。

如果您想查看中间状态和调用是什么,请执行以下操作:

gcc -save-temps -v .....

如果您想查看编译器的优化过程,请使用以下选项:
gcc -fdump-tree-all -fdump-rtl-all ....

这会产生(模糊的)内部状态的人类可读转储,用于调试目的。没有什么可以保存并在以后重新加载到编译器中的,这是肯定的,但是如果您打算修改编译器的源代码或编写 GCC 插件,这会很有帮助。

关于gcc - GCC 的通行证和调用的程序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9169380/

相关文章:

grammar - 使用一元 + 和 - 的算术表达式的明确语法

compiler-construction - 构建 IDE 时从什么开始?

c - GCC 报告包含的无关错误

c++ - 链接到使用 boost 库的静态库会导致 cmake 中出现链接错误

gcc - 编译时间障碍 - 编译器代码重新排序 - gcc 和 pthreads

c++ - 在 C 和 C++ 中返回 void 类型

ruby-on-rails - 将 rails 2 生成器转换为 rails 3?

java - 如何使用 Eclipse 为接口(interface)/抽象类中所有未实现的方法生成方法 stub ?

kotlin - 使用文件模板生成 Kotlin 代码

syntax-highlighting - 为什么编译器不能在输入代码时编译我的代码?