在 CentOS 上编译安装 GCC(从源码)通常用于升级 GCC 版本(如从 4.8 升级到 11/12/13)。下面以 CentOS 7 为例,步骤适用于 CentOS 6/8(略有差异会说明)。
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 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
该命令会自动下载并解压:
⚠️ 不要直接在源码目录编译
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
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
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
error: C++11 required说明系统 GCC 太旧
✅ 可先装 devtoolset-7/8/9 临时使用
-j 参数dnf install gcc gcc-c++ make
如果不强制源码安装:
yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash
如果你告诉我:
我可以给你精确命令。