在 CentOS 系统下编译安装 GCC 源码,可以按照以下步骤进行:
首先,确保系统已经更新,并安装必要的依赖包。
sudo yum update -y
sudo yum groupinstall "Development Tools" -y
sudo yum install gmp-devel mpfr-devel libmpc-devel isl-devel -y
前往 GCC 官方下载页面 查找最新版本的 GCC 源码包。以下以 GCC 11.2.0 为例:
cd /usr/local/src
wget https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz
tar -xzf gcc-11.2.0.tar.gz
cd gcc-11.2.0
GCC 编译需要一些额外的依赖库,可以使用以下命令自动下载并构建这些依赖:
./contrib/download_prerequisites
为了保持源码目录的整洁,建议在源码目录外创建一个构建目录:
cd ..
mkdir gcc-build
cd gcc-build
使用 configure 脚本配置编译选项。以下示例配置将安装 GCC 到 /usr/local/gcc-11.2.0 目录:
../gcc-11.2.0/configure --prefix=/usr/local/gcc-11.2.0 \
--enable-languages=c,c++ \
--disable-multilib
说明:
--prefix:指定安装路径。--enable-languages:启用的语言,可以根据需要添加其他语言,如 fortran、objc 等。--disable-multilib:禁用多库支持,适用于大多数应用场景。编译过程可能需要较长时间,具体取决于系统性能。可以使用 -j 参数指定并行编译的线程数,以加快编译速度。例如,使用 4 个线程:
make -j4
编译完成后,执行安装:
sudo make install
为了让系统使用新安装的 GCC,需要更新环境变量。可以将以下内容添加到 ~/.bashrc 或 /etc/profile 文件中:
export PATH=/usr/local/gcc-11.2.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc-11.2.0/lib64:$LD_LIBRARY_PATH
然后,使配置生效:
source ~/.bashrc
检查 GCC 版本以确认安装成功:
gcc --version
g++ --version
输出应显示 GCC 11.2.0 的版本信息。
如果系统中安装了多个版本的 GCC,可以使用 alternatives 或 update-alternatives 来管理默认的 GCC 版本。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-11.2.0/bin/gcc 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/local/gcc-11.2.0/bin/g++ 50
然后,选择默认版本:
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
按照提示选择所需的 GCC 版本编号。
sudo 执行相关命令。通过以上步骤,您应该能够在 CentOS 系统上成功编译并安装 GCC 源码。如有问题,可以参考 GCC 官方文档或在相关社区寻求帮助。