The popular gcc compiler ships with the gcc toolchain. It can be downloaded from GCC mirror sites. In order to download the precompiled binaries that are ready to use, go to the Installing GCC: Binaries page.
The toolchain contains the following top-level directories:
bin include libexec lib share
The bin
folder contains all the executable binaries, like the C compiler (gcc), the C++ compiler (g++), the Fortran compiler (gfortran), and the D compiler(gdc). It may contain the Go compiler (gccgo) depending on the distribution. It also contains a set of other useful tools like gcov
, lto-dump
, etc.
The include
folder contains a set of header files that are included during compilation. For example, the C++ header files like iostream
, etc. Notice that C header files like stdio.h
are not supplied with the toolchain because they are part of sysroot.
The lib
folder contains libraries like libstdc++, libatomic, etc. These libraries may be used by the gcc compiler during the compilation process or can be used as a reusable set of libraries.
The libexec
folder contains binaries that are invoked by the driver programs (gcc, g++, gdc). For example, gcc invokes cc1
(the C compiler), collect2
(the linker), lto1
(the link time optimiser), etc.
The share
folder contains the documentation which can be installed as man pages, and a non-essential set of scripts.
Online resources
- GCC online documentation
- GCC Resource Center
- Essential Abstractions in GCC
- Videos of Lectures on Essential Abstractions in GCC -2012
- Compiler Internals Lecture by IIT Bombay [Part 1]
- GNU Tools Cauldron