CentOS / RHEL 7: Install GCC (C and C++ Compiler) and Development Tools

How do I install gnu gcc compiler and related tools such as autoconf, automake, flex, c++ compiler, and bison on a CentOS 7 or Red Hat Enterprise Linux version 7 server?

You can setup a basic development environment with the following packages on a CentOS Enterprise Linux or Red Hat Enterprise Linux version 7:[donotprint][/donotprint]

  1. autoconf
  2. automake
  3. binutils
  4. bison
  5. flex
  6. gcc
  7. gcc-c++
  8. gettext
  9. libtool
  10. make
  11. patch
  12. pkgconfig
  13. redhat-rpm-config
  14. rpm-build
  15. rpm-sign

Open the Terminal app and type the following commands.

Command to list groups on a CentOS / RHEL 7

Type the following yum command:
# yum group list
Sample outputs:

Fig. 01: CentOS / RHEL 7: List Package Groups Command

Another option:
# yum group list ids
Sample outputs:

Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: mirror01.idc.hinet.net
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
Available Environment Groups:
   Minimal Install (minimal)
   Compute Node (compute-node-environment)
   Infrastructure Server (infrastructure-server-environment)
   File and Print Server (file-print-server-environment)
   MATE Desktop (mate-desktop-environment)
   Basic Web Server (web-server-environment)
   Virtualization Host (virtualization-host-environment)
   Server with GUI (graphical-server-environment)
   GNOME Desktop (gnome-desktop-environment)
   KDE Plasma Workspaces (kde-desktop-environment)
   Development and Creative Workstation (developer-workstation-environment)
Available Groups:
   CIFS file server (cifs-file-server)
   Compatibility Libraries (compat-libraries)
   Console Internet Tools (console-internet)
   Desktop (basic-desktop)
   Desktop Platform (desktop-platform)
   Desktop Platform Development (desktop-platform-devel)
   Development Tools (development)
   Eclipse (eclipse)
   Educational Software (education)
   Electronic Lab (electronic-lab)
   FCoE Storage Client (storage-client-fcoe)
   Fedora Packager (fedora-packager)
   General Purpose Desktop (general-desktop)
   Graphical Administration Tools (graphical-admin-tools)
   Haskell (haskell)
   Legacy UNIX Compatibility (legacy-unix)
   Messaging Client Support (system-management-messaging-client)
   Messaging Server Support (system-management-messaging-server)
   Milkymist (milkymist)
   MySQL Database client (mysql-client)
   MySQL Database server (mysql)
   NFS file server (nfs-file-server)
   Network Storage Server (storage-server)
   SNMP Support (system-management-snmp)
   Scientific Support (scientific)
   Security Tools (security-tools)
   Server Platform (server-platform)
   Server Platform Development (server-platform-devel)
   Smart Card Support (smart-card)
   Storage Availability Tools (storage-client-multipath)
   System Administration Tools (system-admin-tools)
   System Management (system-management)
   TeX support (tex)
   TurboGears application framework (turbogears)
   Virtualization (virtualization)
   Web-Based Enterprise Management (system-management-wbem)
   Xfce (xfce-desktop)
   iSCSI Storage Client (storage-client-iscsi)

Command to install GCC and Development Tools on a CentOS / RHEL 7 server

Type the following yum command as root user:
# yum group install "Development Tools"
$ sudo yum group install "Development Tools"
If above command failed, try:
# yum groupinstall "Development Tools"
Sample outputs:

A note about failing groupinstall on CentOS/RHEL 7.x

To install all the packages belonging to a package group called “Development Tools” use the following command:
# yum --setopt=group_package_types=mandatory,default,optional groupinstall "Development Tools"
# yum --setopt=group_package_types=mandatory,default,optional group install "Development Tools"
The yum has changed in Red Hat Enterprise Linux 7/CentOS 7. The package group “Development Tools”” has only the optional packages which by default doesn’t get installed. So we will need to pass the option --setopt=group_package_types=mandatory,default,optional to install the optional packages too.

Verify your gcc installation on a CentOS / RHEL 7 server

Type the following command to see gcc location:

$ whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz

Type the following command to see gcc compiler version:

$ gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO

Test gcc C compiler with a sample foo.c program

Create a file called foo.c as follows:

int main(void){
	printf("Hello World!n");
	return 0;

To compile foo.c into foo executable file, type:
$ cc foo.c -o foo
To execute foo program, type:

$ ./foo
Hello World!

A note about install man pages on a CentOS 6/7

Use the yum command as follows:
$ ## [ CentOS 7 ] ##
$ sudo yum install man-pages man-db man
$ ## [ CentOS 6.x ] ##
$ sudo yum install man man-pages

This entry is 3 of 13 in the Linux GNU/GCC Compilers Tutorial series. Keep reading the rest of the series:

  1. Ubuntu Linux Install GNU GCC Compiler and Development Environment
  2. Debian Linux Install GNU GCC Compiler and Development Environment
  3. CentOS / RHEL 7: Install GCC (C and C++ Compiler) and Development Tools
  4. Download and Install C, C++ Compiler on Red Hat Enterprise Linux 5 (RHEL)
  5. Mac OS X: Install GCC Compiler with Xcode
  6. Where is My Linux GNU C or GCC Compilers Are Installed?
  7. HowTo: Compile And Run a C/C++ Code In Linux
  8. RHEL / CentOS Linux Install Core Development Tools Automake, Gcc (C/C++), Perl, Python & Debuggers
  9. HowTo Compiling C Program And Creating Executable File Under a Linux / UNIX / *BSD
  10. How To Install ncurses Library on a Linux
  11. Linux Find Out What Compilers Are Installed or Available On The System
  12. Linux Find Out GNU gcc Compiler Version Used To Compile Running Kernel
  13. Howto see output of C program in Linux or UNIX

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.