温馨提示×

centos怎么编译gcc源码

小樊
39
2026-09-14 20:54:42
栏目: 智能运维

下面以 CentOS 7 / 8 为例,系统地说明如何从源码编译安装 GCC


一、准备环境

1. 安装基础工具

sudo yum groupinstall -y "Development Tools"
sudo yum install -y wget gcc gcc-c++ make gmp-devel mpfr-devel libmpc-devel

说明:

  • gmp / mpfr / libmpc 是 GCC 依赖的数学库
  • CentOS 8 可用 dnf

二、下载 GCC 源码

GCC 13.2.0 为例(可换成你需要的版本):

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

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

GCC 官方提供一键脚本:

./contrib/download_prerequisites

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

  • gmp
  • mpfr
  • mpc

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

不要直接在源码目录编译

mkdir build
cd build

五、配置编译参数

../configure \
  --prefix=/usr/local/gcc-13.2.0 \
  --enable-languages=c,c++ \
  --disable-multilib \
  --enable-threads=posix

常用参数说明:

参数 说明
--prefix 安装路径
--enable-languages 启用的语言
--disable-multilib 不编译 32 位
--enable-bootstrap 默认开启,提高稳定性

六、编译

⚠️ 编译非常耗时(可能 30 分钟~数小时)

make -j$(nproc)

若内存不足:

make -j2

七、安装

sudo make install

八、使用新 GCC

方式 1:直接指定路径

/usr/local/gcc-13.2.0/bin/gcc --version

方式 2:更新系统默认(推荐用 alternatives)

sudo alternatives --install /usr/bin/gcc gcc /usr/local/gcc-13.2.0/bin/gcc 100
sudo alternatives --install /usr/bin/g++ g++ /usr/local/gcc-13.2.0/bin/g++ 100

sudo alternatives --config gcc

九、配置动态库(重要)

echo '/usr/local/gcc-13.2.0/lib64' | sudo tee /etc/ld.so.conf.d/gcc.conf
sudo ldconfig

十、验证

gcc --version
g++ --version

常见问题

1. 编译失败:内存不足

  • 减少 -j 数量
  • 增加 swap

2. 旧系统 glibc 太低

  • CentOS 6 不建议编译高版本 GCC

3. 只想用新 GCC,不想替换系统

  • 直接用绝对路径或 CMake 指定

如果你告诉我:

  • CentOS 版本
  • 要编译的 GCC 版本
  • 是否用于 C / C++ / Fortran

我可以给你精确命令

0