Search code examples
c++gccg++

What is the difference between g++ and gcc?


What is the difference between g++ and gcc? Which one of them should be used for general c++ development?


Solution

  • gcc and g++ are compiler-drivers of the GNU Compiler Collection (which was once upon a time just the GNU C Compiler).

    Even though they automatically determine which backends (cc1 cc1plus ...) to call depending on the file-type, unless overridden with -x language, they have some differences.

    The probably most important difference in their defaults is which libraries they link against automatically.

    According to GCC's online documentation link options and how g++ is invoked, g++ is roughly equivalent to gcc -xc++ -lstdc++ -shared-libgcc (the 1st is a compiler option, the 2nd two are linker options). This can be checked by running both with the -v option (it displays the backend toolchain commands being run).

    By default (and unlike gcc), g++ also adds linker option -lm -- to link against libm which contains implementations for math.h.