Does g++ work without gcc?

2019-03-07 04:36发布

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 .

标签: c++ c gcc g++
1条回答
再贱就再见
2楼-- · 2019-03-07 05:19

With a recent GCC, gcc (actually cc1 which is run by gcc) and g++ (actually cc1plus) -and so on for other GCC compilers, e.g. gfortran or even gdc ....- 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 likewise g++ can compile C or Fortran code). However, they are not linking the same libraries.

Pass the -v flag to the gcc or g++ 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

Three layers of GCC

with a simplification: cc1 or cc1plus are generating assembler files, which is then translated by as started by gcc or g++

and

another view of the internals of cc1 or cc1plus,

which generates some assembler code

view of <code>cc1</code> or <code>cc1plus</code>

查看更多
登录 后发表回答