它出现在另一个问题: 调用了哪些程序和部分gcc
(特别是编译时C
or C++
)以便有人可以设计一些拦截和更改流程以用于各种自定义编码目的的方案?
编译器二进制文件是“编译器驱动程序”(即gcc
),以及编译器本身,它也兼作预处理器(cc1
or cc1plus
)。它还调用汇编器(as
)和链接器(ld
)。另外还有一个工具叫collect2
在某些情况下,这有助于链接过程。
如果您想查看中间状态和调用是什么,请执行以下操作:
gcc -save-temps -v .....
如果您想查看编译器的优化过程,请使用以下选项:
gcc -fdump-tree-all -fdump-rtl-all ....
这会产生(模糊地)人类可读的内部状态转储,以用于调试目的。这是肯定的,您无法保存并稍后重新加载到编译器中,但如果您打算修改编译器的源代码或编写 GCC 插件,那么它会很有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)