下面以 CentOS 7 / 8 为例,系统地说明如何从源码编译安装 GCC。
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 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
该命令会自动下载并解压:
不要直接在源码目录编译
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
/usr/local/gcc-13.2.0/bin/gcc --version
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
-j 数量如果你告诉我:
我可以给你精确命令。