![]() | |
![]() Screenshot of GCC 10.2 compiling its own source code | |
Original author(s) | Richard Stallman |
---|---|
Developer(s) | GNU Project |
Initial release | March 22, 1987[1] |
Stable release | 14.2[2] ![]() |
Repository | |
Written in | C, C++[3] |
Operating system | Cross-platform |
Platform | GNU and many others |
Size | ~15 million LOC[4] |
Available in | English |
Type | Compiler |
License | GPLv3+ with GCC Runtime Library Exception[5] |
Website | gcc |
The GNU Compiler Collection (GCC) is a collection of compilers from the GNU Project that support various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free software under the GNU General Public License (GNU GPL). GCC is a key component of the GNU toolchain which is used for most projects related to GNU and the Linux kernel. With roughly 15 million lines of code in 2019, GCC is one of the largest free programs in existence.[4] It has played an important role in the growth of free software, as both a tool and an example.
When it was first released in 1987 by Richard Stallman, GCC 1.0 was named the GNU C Compiler since it only handled the C programming language.[1] It was extended to compile C++ in December of that year. Front ends were later developed for Objective-C, Objective-C++, Fortran, Ada, D, Go and Rust,[6] among others.[7] The OpenMP and OpenACC specifications are also supported in the C and C++ compilers.[8][9]
GCC has been ported to more platforms and instruction set architectures than any other compiler, and is widely deployed as a tool in the development of both free and proprietary software. GCC is also available for many embedded systems, including ARM-based and Power ISA-based chips.
As well as being the official compiler of the GNU operating system, GCC has been adopted as the standard compiler by many other modern Unix-like computer operating systems, including most Linux distributions. Most BSD family operating systems also switched to GCC shortly after its release, although since then, FreeBSD and Apple macOS have moved to the Clang compiler,[10] largely due to licensing reasons.[11][12][13] GCC can also compile code for Windows, Android, iOS, Solaris, HP-UX, AIX and DOS.[14]