下面以 CentOS 7 为例,系统说明如何从源码编译安装 GCC(以 gcc 11 为例,其他版本类似)。
sudo yum groupinstall "Development Tools" -y
sudo yum install -y wget bison flex texinfo gmp-devel \
mpfr-devel libmpc-devel glibc-static
mkdir -p /usr/local/src/gcc
cd /usr/local/src/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
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
gcc --version
g++ --version
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
说明系统旧 gcc 太老,可:
减少并行:
make -j2
用 dnf 替代 yum 即可。
如果你告诉我:
我可以给你精确命令版或 一键脚本。