当你兴致勃勃地在CentOS服务器上写好了第一个C程序,满心期待地输入 gcc hello.c -o hello,却赫然看到 command not found: gcc 的提示时,那份挫败感想必很深刻,别急,这只是缺少了关键的构建工具——GNU编译器集合(GCC),作为Linux系统上C/C++程序开发的基石,GCC几乎是不可或缺的,本文将清晰、直接地指导你完成在CentOS系统上安装GCC C编译器的过程,助你快速搭建起开发环境。
为什么必须安装GCC?

GCC是将人类可读的C、C++等源代码转换成机器可执行代码的核心工具,无论是编译一个简单的测试程序,还是构建复杂的应用程序乃至内核模块,GCC都扮演着核心角色,没有它,源代码就只是一堆文本文件,对于开发者、系统管理员或需要从源码安装软件的用户而言,GCC是必备工具。
确认当前状态:你的系统有GCC吗?
在着手安装之前,明智的做法是先检查系统是否已经安装了GCC,以及安装了哪个版本,打开终端,输入以下命令:
gcc --version
或者更详细一些:
gcc -v
- 如果系统返回了类似
gcc (GCC) x.x.x ...的版本信息(gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-16)),恭喜你,GCC已经存在,可以直接使用了。 - 如果看到
bash: gcc: command not found或类似的错误信息,那么就需要进行安装。
使用Yum/DNF包管理器安装(推荐,最简单快捷)
CentOS(以及其后续项目如AlmaLinux, Rocky Linux)强大的Yum(在CentOS 8+中是DNF)包管理器是安装软件的首选方式,它能自动处理依赖关系,确保安装过程顺畅。

更新软件包索引(强烈建议): 在安装任何新软件前,更新本地软件仓库的元数据是个好习惯,这能确保你获取到最新的可用版本和安全更新。
sudo yum update # CentOS 7 及更早版本 sudo dnf update # CentOS 8 及更高版本(包括AlmaLinux, Rocky Linux)
输入你的管理员密码确认操作。
安装GCC及相关开发工具链: 安装名为
gcc的包就包含了C编译器,但为了获得完整的开发环境(包括make,glibc-devel等构建常用开源软件所需的工具),安装Development Tools软件包组是更全面的选择:sudo yum groupinstall "Development Tools" # CentOS 7 sudo dnf groupinstall "Development Tools" # CentOS 8+
这个命令会安装GCC(C和C++编译器)、GDB(调试器)、Make、Autoconf、Automake 以及其他许多开发必备工具。
仅安装GCC C编译器(最小化安装): 如果你非常确定只需要GCC来编译C程序,不需要其他开发工具,可以只安装
gcc包:sudo yum install gcc # CentOS 7 sudo dnf install gcc # CentOS 8+
验证安装: 安装完成后,再次运行验证命令:

gcc --version
如果成功显示版本信息(
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)对于CentOS 7,或更高版本),说明安装成功。
从源码编译安装(高级,特定版本需求)
大多数情况下,方法一完全够用,但如果你需要CentOS官方仓库中不提供的特定GCC版本(比如最新稳定版或某个旧版本),或者需要高度定制化编译选项,就需要从源码编译安装,这个过程更复杂、耗时更长,且需要仔细管理版本和依赖。
安装编译GCC本身所需的依赖: 即使是编译GCC,也需要一个可用的编译器(通常称为“Bootstrap编译器”)和一些基础库(如GMP, MPFR, MPC),先安装这些必要工具和库:
# CentOS 7: sudo yum groupinstall "Development Tools" sudo yum install wget gmp-devel mpfr-devel libmpc-devel # CentOS 8+: sudo dnf groupinstall "Development Tools" sudo dnf install wget gmp-devel mpfr-devel libmpc-devel
下载GCC源码: 访问 GNU镜像列表 或直接到 GCC官方FTP 找到你需要的版本(
gcc-11.3.0),使用wget下载:wget https://ftp.gnu.org/gnu/gcc/gcc-11.3.0/gcc-11.3.0.tar.gz
解压源码包:
tar xzf gcc-11.3.0.tar.gz cd gcc-11.3.0
下载依赖项(可选但推荐): GCC源码树提供了一个脚本自动下载它需要的GMP、MPFR、MPC库(这些库的源码包包含在GCC源码中,但需要单独解压配置),运行:
./contrib/download_prerequisites
配置编译选项: 创建一个单独的构建目录(避免污染源码目录),并运行
configure脚本,这里配置一个基本安装到/usr/local/gcc-11.3.0:mkdir build cd build ../configure --prefix=/usr/local/gcc-11.3.0 --enable-languages=c,c++ --disable-multilib
--prefix=/usr/local/gcc-11.3.0: 指定安装目录。--enable-languages=c,c++: 指定编译支持的编程语言(这里C和C++)。--disable-multilib: 禁用生成多目标库(32/64位),简化编译(如果确定不需要32位支持)。
编译: 使用
make开始编译,这个过程非常漫长(几十分钟到数小时,取决于机器性能),可以使用-j选项指定并行编译任务数以加快速度(make -j4表示使用4个核)。make -j$(nproc) # nproc 获取CPU核心数,自动并行编译
安装: 编译成功后(没有报错),进行安装:
sudo make install
配置环境变量: 安装到非标准路径后,需要手动将该路径添加到系统的
PATH和库路径LD_LIBRARY_PATH中,以便系统能找到新安装的GCC,修改~/.bashrc(针对当前用户) 或/etc/profile.d/gcc.sh(针对所有用户):export PATH=/usr/local/gcc-11.3.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/gcc-11.3.0/lib64:$LD_LIBRARY_PATH
保存后执行
source ~/.bashrc或重新登录终端使配置生效。验证: 检查新安装GCC的版本:
gcc --version
确认输出的是你安装的版本(如
gcc (GCC) 11.3.0)。
使用软件集合(SCL)安装较新版本(CentOS 7特别推荐)
CentOS 7默认仓库中的GCC版本(4.8.5)相对较旧,如果你需要在CentOS 7上使用更新的GCC版本(如GCC 8, 9, 10, 11),但又不想自己编译,软件集合(Software Collections, SCL) 是最佳选择,SCL允许你在系统上并行安装和使用多个软件版本而不影响默认版本。
安装SCL仓库:
sudo yum install centos-release-scl
安装所需的GCC软件集合包: SCL仓库提供了多个GCC版本集合包,通常命名为
devtoolset-N(N是主版本号),例如安装GCC 11:sudo yum install devtoolset-11
其他常见版本如
devtoolset-8,devtoolset-9,devtoolset-10等。启用软件集合: SCL安装的软件不会自动覆盖系统默认路径,你需要显式启用它:
- 临时启用(仅当前终端会话有效):
scl enable devtoolset-11 bash
- 永久启用(针对当前用户): 在
~/.bashrc文件末尾添加:source /opt/rh/devtoolset-11/enable
保存后执行
source ~/.bashrc或重新登录。
- 临时启用(仅当前终端会话有效):
验证: 启用后,运行
gcc --version应显示新版本(如gcc (GCC) 11.2.1...)。
选择哪种方法?
- 追求简单、快速、稳定,使用默认版本即可: 首选方法一(Yum/DNF安装)。
- 在CentOS 7上需要较新的GCC版本(如8+): 强烈推荐方法三(SCL软件集合),这是官方支持且管理方便的途径。
- 需要非常特定的版本或深度定制: 考虑方法二(源码编译),请务必评估其复杂性和维护成本。
安装后的小测试:编译你的第一个程序
验证安装是否真正有效的最好方式就是编译运行一个简单的C程序,创建一个名为 hello.c 的文件:
#include <stdio.h>
int main() {
printf("Hello, CentOS! GCC is working perfectly.\n");
return 0;
} 使用GCC编译它:
gcc hello.c -o hello
如果没有错误,运行生成的可执行文件:
./hello
如果屏幕上打印出 Hello, CentOS! GCC is working perfectly.,那么恭喜你,你的CentOS GCC开发环境已经成功搭建完成!一个可靠、配置正确的编译环境是进行任何C语言开发、系统管理任务或软件部署工作的起点,花些时间确保它正确安装,将为你后续的工作省去大量潜在的麻烦,你可以自信地探索更广阔的开源世界或开始构建自己的项目了。
