g ++没有gcc吗?

没有GCC或G ++的G ++编译只是翻译//包括旧的g ++版本。

当我试图从源代码安装g ++我看到文件

gcc.c

/* Default prefixes to attach to command names. */ #ifndef STANDARD_EXEC_PREFIX #define STANDARD_EXEC_PREFIX "/usr/local/lib/gcc-" #endif /* !defined STANDARD_EXEC_PREFIX */ 

//来自g ++ 1.4 *

我知道c ++是c类,我只是想知道g ++是否可以在没有gcc的情况下编译c ++。

使用最近的 GCC , gcc (实际上是由gcc运行的cc1 )和g++ (实际上是cc1plus ) – 等等其他GCC编译器,例如gfortran甚至gdc ….-共享很多(源)代码:中端(大多数优化发生的地方)和后端。 不同之处仅在于编译器的前端层(唯一的层是源语言特定的),它不到编译器的30%。

您可以使用插件或MELT自定义GCC编译器。 您的扩展将适用于GCC内部表示(Gimple-s),并且在编译C,C ++,Ada,Fortran等时可以正常工作…请记住, GCC意味着今天的Gnu编译器集合

实际上gcc程序能够编译C ++源代码(同样g++可以编译C或Fortran代码)。 但是,它们没有链接相同的库。

-v标志传递给gccg++命令以了解它们正在运行的内容。


这是两个(我的)[CC-BY-SA]图片 – 解释GCC和MELT-说明了这一点。

编译器的三个层 – 前端,中端,后端 – :

使用您的插件或MELT元插件

三层海湾合作委员会

简化: cc1cc1plus正在生成汇编程序文件,然后由gccg++启动

另一种cc1cc1plus内部视图,

它会生成一些汇编代码

<code/> cc1 </ code>或<code> cc1plus </ code>的视图