在 CentOS 上从源码编译 GCC 一般步骤如下(以 GCC 13 为例,其他版本类似)。
sudo yum groupinstall "Development Tools" -y
sudo yum install -y \
wget bzip2 gcc-c++ make \
gmp-devel mpfr-devel libmpc-devel \
flex bison texinfo
如果是 CentOS 8 / Stream,用
dnf代替yum
cd /usr/src
sudo wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz
sudo tar xf gcc-13.2.0.tar.xz
cd gcc-13.2.0
./contrib/download_prerequisites
该脚本会自动下载:
不要直接在源码目录编译
mkdir build
cd build
../configure \
--prefix=/usr/local/gcc-13.2.0 \
--enable-languages=c,c++ \
--disable-multilib \
--enable-bootstrap
常用参数说明:
--prefix:安装路径--enable-languages:支持的编程语言--disable-multilib:不编译 32 位支持--enable-bootstrap:提高兼容性(耗时更长)make -j$(nproc)
⚠️ GCC 编译非常耗时(30 分钟~数小时)
sudo make install
echo 'export PATH=/usr/local/gcc-13.2.0/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
gcc --version
g++ --version
sudo alternatives --install /usr/bin/gcc gcc /usr/local/gcc-13.2.0/bin/gcc 60
sudo alternatives --install /usr/bin/g++ g++ /usr/local/gcc-13.2.0/bin/g++ 60
减少并行:
make -j2
建议使用 Software Collections (SCL) 或 devtoolset,不一定非要源码编译。
如果你告诉我:
我可以给你更精确的编译方案。