G++ 是否可以在没有 GCC 的情况下进行编译,或者 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
(实际上是cc1
,由gcc
运行)和g++
(实际上是cc1plus
>) - 其他 GCC 编译器依此类推,例如gfortran
甚至 gdc
....- 一起共享大量(源)代码:中间端(大多数优化发生的地方)和后端。区别仅在于编译器的前端层(唯一特定于源语言的层),不到编译器的 30%。
您可以使用插件或 MELT 自定义 GCC 编译器。您的扩展可以在 GCC 内部表示(Gimple-s)上工作,并且可以在编译 C、C++、Ada、Fortran 等时工作...请记住,GCC 意味着 Gnu 编译器集合 今天
实际上,gcc
程序能够编译 C++ 源代码(同样,g++
也可以编译 C 或 Fortran 代码)。但是,它们没有链接相同的库。
将 -v
标志传递给 gcc
或 g++
命令以了解它们正在运行的内容。
这里有两张(我的)[CC-BY-SA] 图片 - 解释 GCC 和 MELT - 说明了这一点。
编译器的三层——前端、中端、后端:
使用您的插件,或 MELT元插件
简化一下:cc1
或 cc1plus
正在生成汇编程序文件,然后由 as
启动由 进行翻译gcc
或 g++
和
cc1
或 cc1plus
内部的另一个 View ,
生成一些汇编代码
关于c++ - g++ 没有 gcc 也能工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26167291/