Home / Tutorials / What is GCC

What is GCC

What is GCC?

GCC stands for GNU Compiler Collection. It is a free and open-source compiler system produced by the GNU Project. GCC supports several programming languages, including C, C++, Fortran, Ada, and Go. On Linux and Unix-like systems, GCC is the standard compiler and is central to the entire open-source software ecosystem.

History

The Original Release

GCC was originally written by Richard M. Stallman (RMS), the founder of the GNU Project and the Free Software Foundation (FSF). The first public release was on March 22, 1987 — version 1.0 of GCC. This was significant because it provided a free, high-quality C compiler, which was essential for bootstrapping the GNU operating system.

Before GCC, most Unix systems required proprietary compilers. RMS's vision was that a complete free software system needed a free compiler at its foundation.

The EGCS Merger

By the mid-1990s, development of the official GCC had slowed and was seen as too conservative in accepting contributions. In 1997, a group of developers forked GCC to create EGCS (Experimental/Enhanced GNU Compiler System). EGCS moved quickly, incorporating many improvements including better C++ support and optimization.

In 1999, the FSF and EGCS developers merged their efforts. The EGCS project officially became the new GCC, and the EGCS development model — more open, faster-paced, with a steering committee — was adopted. This gave us GCC 2.95, which was a major milestone.

The Name Change

As GCC gained support for more languages beyond C (C++, Fortran, Java, Ada), the acronym was officially changed from "GNU C Compiler" to "GNU Compiler Collection" to reflect its broader scope.

GNU General Public License

GCC is licensed under the GNU General Public License version 3 (GPLv3) with the GCC Runtime Library Exception. The GPL requires that anyone who distributes a modified version of GCC must also distribute the source code for their modifications. The Runtime Library Exception is important: it allows programs compiled by GCC to be distributed under any license — including proprietary licenses — without triggering the GPL's copyleft requirements on the compiled program itself.

This design was intentional: Stallman wanted GCC to be freely usable to compile both free and non-free software, while ensuring that improvements to GCC itself remain free.

Windows Support

GCC is available on Windows through several ports:

MinGW-w64 (a fork of the original MinGW) supports both 32-bit and 64-bit Windows targets and is the most commonly recommended option for native Windows development with GCC today.