Does G++ compile without GCC or G++ is just translator // Including old g++ version.
when i was trying to install g++ from source i saw file
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 */
//from g++1.4*
Well i know that c++ is c with classes i just wanted to know if the g++ can compile c++ without gcc .
With a recent GCC,
gcc
(actuallycc1
which is run bygcc
) andg++
(actuallycc1plus
) -and so on for other GCC compilers, e.g.gfortran
or evengdc
....- share a lot of (source) code together: the middle-end (where most optimizations happen) and the back-end. The difference is only the front-end layer of the compiler (the only layer being source language specific) which is less than 30% of the compiler.You could customize the GCC compiler with plugins or with MELT. Your extensions would work on GCC internal representations (Gimple-s) and would work when compiling C, C++, Ada, Fortran, etc... Remember that GCC means Gnu Compiler Collection today
Actually the
gcc
program is able to compile C++ source code (and likewiseg++
can compile C or Fortran code). However, they are not linking the same libraries.Pass the
-v
flag to thegcc
org++
command to understand what they are running.Here are two (mine) [CC-BY-SA] pictures -explaing GCC & MELT- illustrating this.
The three layers -front-end, middle-end, back-end- of the compiler:
with your plugin, or the MELT meta-plugin
with a simplification:
cc1
orcc1plus
are generating assembler files, which is then translated byas
started bygcc
org++
and
another view of the internals of
cc1
orcc1plus
,which generates some assembler code