【发布时间】:2016-01-30 14:20:58
【问题描述】:
我想知道 GCC 在编译 C 程序时使用了哪些特定程序(和库)。我听说当我调用名为“GCC”的可执行程序时,它并没有真正自己编译程序。相反,它将调用另一个程序进行编译和另一个程序进行链接。我还听说我们可以使用 -S 选项将 C 转换为汇编语言(所以我认为它已被另一个程序翻译)。我尝试搜索 GCC 文档,但找不到答案。负责创建 C 程序的程序和库是什么?提前致谢!
【问题讨论】:
-
使用
-v选项查看gcc的作用,它代表verbose。 -
好的,谢谢。但是我怎么知道 GCC 中的程序是做什么的。例如,当我添加了 -S 开关时,负责翻译代码的程序是什么?
-
您阅读输出了吗?最后一个程序叫什么?我很好奇,为什么你想知道这个?如果您想生成汇编代码,只需像其他人一样使用
gcc -S,那么您不必为实际编译程序所需的特殊标志而烦恼。 -
是的。我读了输出。而且我认为最后一个调用的程序是 GCC(嗯,我不确定)。它只是详细开关显示的目录加上 GCC、GMP 和 MPFR 的版本,以及某种 GCC 标志(或参数,我仍然不确定)。至于你的第二个问题,如果我们创建一个应用程序并将其与整个 MinGW GCC 打包,这将花费大量时间(和空间)。但是如果我们只使用其中的一部分(仅用于调试应用程序的程序),也许我们可以节省更多的时间(和空间)。
-
那你没看清楚。在我的系统上有一行写着
/usr/lib/gcc/x86_64-linux-gnu/5/cc1,后面跟着很多参数。这是生成目标文件的实际编译器,或汇编文件。