【Linux】gcc升级13.2.0

错误信息

g++: error: unrecognized command line option ‘-std=gnu++14’

-std=c++14需要g++5.2以上,而centos默认的g++只有4.8.5,所以,要做的事情,是升级g++

下载gcc

  • 官网下载: https://ftp.gnu.org/gnu/gcc/
  • wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
  • 解压: tar zxvf gcc-13.2.0.tar.gz
  • 直接编译会报错
    configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.
    Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
    their locations.  Source code for these libraries can be found at
    their respective hosting sites as well as at
    https://gcc.gnu.org/pub/gcc/infrastructure/.  See also
    http://gcc.gnu.org/install/prerequisites.html for additional info.  If
    you obtained GMP, MPFR and/or MPC from a vendor distribution package,
    make sure that you have installed both the libraries and the header
    files.  They may be located in separate packages.
    
  • 查看gcc的依赖: cat ./contrib/download_prerequisites,最上面的位置
gmp='gmp-6.2.1.tar.bz2'
mpfr='mpfr-4.1.0.tar.bz2'
mpc='mpc-1.2.1.tar.gz'
isl='isl-0.24.tar.bz2'

下载gcc依赖

  • 官网地址: https://gcc.gnu.org/pub/gcc/infrastructure/
  • GMT: wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.2.1.tar.bz2
  • MPFR: wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2
  • MPC: wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz
  • ISL: wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.24.tar.bz2

解压依赖

tar jxvf gmp-6.2.1.tar.bz2
tar jxvf mpfr-4.1.0.tar.bz2
tar zxvf mpc-1.2.1.tar.gz
tar jxvf isl-0.24.tar.bz2

编译依赖

cd gmp-6.2.1/
./configure --prefix=/usr/local/gmp-6.2.1
make && sudo make install

cd ../mpfr-4.1.0/
./configure --prefix=/usr/local/mpfr-4.1.0 --with-gmp=/usr/local/gmp-6.2.1
make && sudo make install

cd ../mpc-1.2.1/
./configure --prefix=/usr/local/mpc-1.2.1 --with-gmp=/usr/local/gmp-6.2.1 --with-mpfr=/usr/local/mpfr-4.1.0
make && sudo make install

升级步骤

# 进入gcc目录安装
cd gcc-13.2.0
# 下载某些依赖包,如果内网服务器不能上外网,就根据上面的步骤手动下载
./contrib/download_prerequisites
# 创建bulid文件夹
mkdir build
cd build
../configure --prefix=/usr/local/gcc --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-6.2.1 --with-mpfr=/usr/local/mpfr-4.1.0 --with-mpc=/usr/local/mpc-1.2.1
# 编译gcc过程如果报找不到libmpfr.so.6,则执行以下2条命令
ln -s /usr/local/mpfr-4.1.0/lib/libmpfr.so.6.1.0 /usr/lib/libmpfr.so.6
ldconfig
# 编译安装,此过程耗时较长,建议使用后台运行
nohup make && make install &
# 修改软连接
mv /usr/bin/gcc /usr/bin/gcc_bak
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++_bak
ln -s /usr/local/gcc/bin/g++ /usr/bin/g++
# 查看升级后版本
gcc --version
g++ --version

安装成功截图

在这里插入图片描述

问题处理

error while loading shared libraries: libmpfr.so.6: cannot open shared object file: No such file or directory

ln -s /usr/local/mpfr-4.1.0/lib/libmpfr.so.6.1.0 /usr/lib/libmpfr.so.6.1.0
ldconfig
# 然后重新安装gcc
### 安装 GCC 13.2.0 版本 为了安装特定版本的 GCC 编译器,如 GCC 13.2.0,在开始之前需确保操作环境已准备好必要的依赖项。通常的操作流程涉及下载源码、配置编译选项以及执行编译过程。 #### 准备工作 进入指定目录并准备下载所需的依赖包: ```bash cd /opt/gcc-13.2.0/ ./contrib/download_prerequisites ``` 此命令会自动获取构建 GCC 所必需的各种库文件和其他资源[^1]。 #### 配置与编译 创建一个新的构建目录来保持项目结构清晰,并在此目录内运行配置脚本: ```bash mkdir build-gcc && cd build-gcc ../configure --prefix=/usr/local/gcc-13.2.0 \ --enable-checking=release \ --enable-languages=c,c++ \ --disable-multilib ``` 上述命令指定了安装路径为 `/usr/local/gcc-13.2.0` 并启用了 C 和 C++ 支持,同时也禁用了多架构支持以简化设置。 接着可以启动实际的编译过程: ```bash make -j$(nproc) ``` 这里 `-j$(nproc)` 参数用于加速编译速度,利用所有可用的核心数进行并行处理。 #### 完成安装 当编译完成后,通过以下指令完成最终的安装步骤: ```bash sudo make install ``` 这一步骤将会把新编译好的 GCC 文件复制到前面 `--prefix` 中定义的目标位置。 最后更新系统的链接以便能够方便地调用刚安装的新版 GCC: ```bash echo 'export PATH=/usr/local/gcc-13.2.0/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` 这样就可以成功安装并切换至 GCC 13.2.0 版本了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太空眼睛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值