GNU Compiler Collection


The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain. The Free Software Foundation (FSF) distributes GCC under the GNU General Public License (GNU GPL). GCC has played an important role in the growth of free software, as both a tool and an example.

Originally named the GNU C Compiler, because it only handled the C programming language, GCC 1.0 was released in 1987 and the compiler was extended to compile C++ in December of that year. Front ends were later developed for Objective-C, Objective-C++, Fortran, Java, Ada, and Go among others.

As well as being the official compiler of the unfinished GNU operating system, GCC has been adopted as the standard compiler by most other modern Unix-like computer operating systems, including Linux and the BSD family. A port to RISC OS has also been developed extensively in recent years. There is also an old (3.0) port of GCC to Plan9, running under its ANSI/POSIX Environment (APE). GCC is also available for Microsoft Windows operating systems and for the ARM processor used by many portable devices.

GCC has been ported to a wide variety of processor architectures, and is widely deployed as a tool in proprietary development environments. GCC is also available for most embedded platforms, including Symbian (called gcce), AMCC, and Freescale Power Architecture-based chips. The compiler can target a wide variety of platforms, including videogame consoles such as the PlayStation 2 and Dreamcast. Several companies make a business out of supplying and supporting GCC ports to various platforms, and chip manufacturers today consider a GCC port almost essential to the success of an architecture.


Compute Systems Invocation Version(s)
Red Hat Linux (64-bit) % /usr/bin/gcc
% /usr/bin/g++
4.4.7 (default)
% /util/bin/gcc
% /util/bin/g++
6.4.0 (default)


  1. We offer two versions of gcc on the Linux systems:
    1. The GCC installation in the /usr filesystem is the system GCC. The underlying operating system depends on this GCC installation, so we don't modify it. This tends to be an older version of GCC.
    2. The GCC installation in the /util filesystem is the development GCC. For instruction and research, some faculty and students need a newer version of GCC than the system GCC.
  2. If you're using the development GCC:
    1. Make sure that /util/bin is at the start of your search path. For most users this is automatic, but you can verify with the command:
      % printenv PATH
    2. Add the GCC development library directory to your LD_LIBRARY_PATH environment variable:
      % setenv LD_LIBRARY_PATH /util/gcc/lib64:${LD_LIBRARY_PATH}
      If you want this change to persist across sessions, add the above line to your .cshrc file.


  1. Tamal Biswas, CSE 250 instructor.
  2. Hung Ngo, CSE 250 instructor.
  3. Ken Regan, CSE 250 instructor.