温馨提示×

centos如何源码编译gcc

小樊
38
2026-10-14 13:02:14
栏目: 智能运维

下面以 CentOS 7 为例,系统说明如何从源码编译安装 GCC(以 gcc 11 为例,其他版本类似)。


一、准备环境

1. 安装基础依赖

sudo yum groupinstall "Development Tools" -y
sudo yum install -y wget bison flex texinfo gmp-devel \
    mpfr-devel libmpc-devel glibc-static

2. 创建目录

mkdir -p /usr/local/src/gcc
cd /usr/local/src/gcc

二、下载 GCC 源码

以 gcc-11.4.0 为例:

wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz
tar -xf gcc-11.4.0.tar.gz
cd gcc-11.4.0

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

GCC 依赖 gmp、mpfr、mpc,可用自带脚本自动下载:

./contrib/download_prerequisites

四、配置编译(重要)

不要直接在源码目录编译,需使用独立的 build 目录:

mkdir build
cd build

配置示例(安装到 /usr/local/gcc-11):

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

常用参数说明:

  • --enable-languages:指定支持的语言
  • --disable-multilib:不编译 32 位支持(CentOS 64 位推荐)
  • --enable-bootstrap:提高编译稳定性(耗时更长)

五、编译

make -j$(nproc)

⚠️ 编译时间较长(30 分钟~数小时,视机器性能)


六、安装

sudo make install

七、配置使用新 GCC

1. 添加环境变量

export PATH=/usr/local/gcc-11/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc-11/lib64:$LD_LIBRARY_PATH

可写入:

echo 'export PATH=/usr/local/gcc-11/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/gcc-11/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

2. 验证

gcc --version
g++ --version

八、可选:设为系统默认 GCC(谨慎)

sudo alternatives --install /usr/bin/gcc gcc /usr/local/gcc-11/bin/gcc 60
sudo alternatives --install /usr/bin/g++ g++ /usr/local/gcc-11/bin/g++ 60
sudo alternatives --config gcc

九、常见问题

1. 编译报错:C++11 不支持

说明系统旧 gcc 太老,可:

  • 先装 devtoolset-7/8
  • 或用旧 gcc 先编一个中间 gcc

2. 内存不足

减少并行:

make -j2

3. CentOS 8 / Stream

用 dnf 替代 yum 即可。


如果你告诉我:

  • CentOS 版本(6/7/8)
  • 目标 GCC 版本
  • 是否用于 C/C++/Fortran

我可以给你精确命令版或 一键脚本。

0 踩