温馨提示×

centos如何编译安装gcc

小樊
42
2026-09-29 21:32:03
栏目: 智能运维

在 CentOS 上编译安装 GCC(从源码)通常用于升级 GCC 版本(如从 4.8 升级到 11/12/13)。下面以 CentOS 7 为例,步骤适用于 CentOS 6/8(略有差异会说明)。


一、准备工作

1. 安装基础依赖

yum groupinstall "Development Tools" -y
yum install -y wget gcc-c++ gcc make bison flex \
  gmp-devel mpfr-devel libmpc-devel \
  glibc-static glibc-devel zlib-devel

说明:

  • gmp / mpfr / libmpc 是 GCC 依赖的数学库
  • 若缺少会导致编译失败

二、下载 GCC 源码

以 GCC 11.4.0 为例(可自行替换版本):

cd /usr/local/src
wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz
tar -xzf gcc-11.4.0.tar.gz
cd gcc-11.4.0

三、下载依赖库(推荐方式)

GCC 提供自动下载脚本:

./contrib/download_prerequisites

该命令会自动下载并解压:

  • gmp
  • mpfr
  • mpc

四、创建编译目录(重要)

⚠️ 不要直接在源码目录编译

mkdir build
cd build

五、配置编译参数

../configure \
  --prefix=/usr/local/gcc-11.4.0 \
  --enable-languages=c,c++ \
  --disable-multilib \
  --enable-bootstrap

常用参数说明:

参数 说明
--prefix 安装路径
--enable-languages 编译的语言
--disable-multilib 不编译 32 位
--enable-bootstrap 多阶段编译(更稳定)

六、编译(非常慢)

make -j$(nproc)

⏱ 时间:几小时到十几小时(取决于 CPU)


七、安装

make install

安装完成后:

/usr/local/gcc-11.4.0/bin/gcc --version

八、切换系统 GCC(可选)

方式 1:使用 alternatives(推荐)

ln -s /usr/local/gcc-11.4.0/bin/gcc /usr/bin/gcc-11
ln -s /usr/local/gcc-11.4.0/bin/g++ /usr/bin/g++-11

alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 60
alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 60

alternatives --config gcc

方式 2:直接替换(不推荐)

mv /usr/bin/gcc /usr/bin/gcc.bak
ln -s /usr/local/gcc-11.4.0/bin/gcc /usr/bin/gcc

九、设置动态库路径(关键)

echo '/usr/local/gcc-11.4.0/lib64' > /etc/ld.so.conf.d/gcc-11.conf
ldconfig

十、验证

gcc --version
g++ --version

常见问题

1. error: C++11 required

说明系统 GCC 太旧
✅ 可先装 devtoolset-7/8/9 临时使用

2. 编译卡死

  • 内存不足
  • 减少 -j 参数

3. CentOS 8

dnf install gcc gcc-c++ make

更简单的替代方案(推荐)

如果不强制源码安装:

yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash

如果你告诉我:

  • CentOS 版本
  • 当前 GCC 版本
  • 目标 GCC 版本

我可以给你精确命令。

0 踩