GCC的pass和调用的程序是什么?

发布于 2025-01-02 21:08:08 字数 221 浏览 2 评论 0原文

它出现在另一个问题中:程序和部件叫什么通过gcc(特别是在编译CC++时),以便有人可以设计某种拦截和改变流程以用于各种自定义编码目的的方案?

It came up in another question: What are the programs and parts called by gcc (particularly when compiling C or C++) so that someone might engineer some scheme of intercepting and altering the flow for various custom coding purposes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

超可爱的懒熊 2025-01-09 21:08:08

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

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

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

如果您想查看编译器的优化过程,请使用以下选项:

gcc -fdump-tree-all -fdump-rtl-all ....

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

The compiler binaries are the "compiler driver" (i.e. gcc), and the compiler itself which also doubles as a preprocessor (cc1 or cc1plus). It also invokes the assembler (as), and the linker (ld). Additionally there's a tool called collect2 that assists during the link process in some cases.

If you want to see what the intermediate states and invocations are then do this:

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

If you want to see the compiler's optimization passes, then use these options:

gcc -fdump-tree-all -fdump-rtl-all ....

This produces (vaguely) human readable dumps of the internal state for debugging purposes. It's nothing you could save and reload into the compiler later, that's for sure, but it's helpful if you plan to modify the compiler's source, or write a GCC plugin.

垂暮老矣 2025-01-09 21:08:08

准确观察程序的名称:

gcc -v main.c

具体步骤由规范文件确定,格式为: https://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Spec-Files.html

查看默认值(在 GCC 中硬编码):

gcc -dumpspecs

运行您自己的规范默认文件之后的文件:

gcc -specs=file

Observe exactly what programs are called:

gcc -v main.c

The exact steps are determined by a spec file with format: https://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Spec-Files.html

View the default (hard-coded in GCC):

gcc -dumpspecs

Run your own spec file after the default one:

gcc -specs=file
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文