它出现在 another question :gcc
调用的程序和部件是什么? (特别是在编译 C
或 C++
时)以便有人可以设计一些拦截和更改流程的方案以用于各种自定义编码目的?
最佳答案
编译器二进制文件是“编译器驱动程序”(即 gcc
),编译器本身也兼作预处理器( cc1
或 cc1plus
)。它还调用汇编器( as
)和链接器( ld
)。此外还有一个名为 collect2
的工具在某些情况下,这有助于链接过程。
如果您想查看中间状态和调用是什么,请执行以下操作:
gcc -save-temps -v .....
如果您想查看编译器的优化过程,请使用以下选项:
gcc -fdump-tree-all -fdump-rtl-all ....
这会产生(模糊的)内部状态的人类可读转储,用于调试目的。没有什么可以保存并在以后重新加载到编译器中的,这是肯定的,但是如果您打算修改编译器的源代码或编写 GCC 插件,这会很有帮助。
关于gcc - GCC 的通行证和调用的程序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9169380/