【普通用户+亲测成功】CentOS中升级gcc/g++,非root用户使用源码安装教程,附带gcc和所有依赖包的下载地址,解决库未找到的错误


▚ 01 介绍


🌼 截止到2020年,C/C++标准多次更迭,如c++98, c++03, c++11, c++14, c++17, c++20。为了使用这些新标准,我们应根据需求来更新GCC。


▚ 02 安装说明

可查看解压后的gcc文件中的contrib/download_prerequisites,以确定所需的依赖库及其版本信息。如下图所示:


  • 1. 全程共使用5个安装包(1个gcc,4个依赖包)。
  • 2. 首先,安装依赖包(注意它们的安装顺序)。
  • 3. 然后,安装gcc。(源码可在 https://gcc.gnu.org/ 或者 https://ftp.gnu.org/gnu/gcc/) 查找并下载。
  • 4. 最后,配置环境变量。

为了避免读者搜索各种包的繁琐过程,特将gcc-8.3.0及依赖包等放在 GCC源码+依赖包 (如截图所示)。

GCC源码截图


🍓 依赖包下载地址,可以方便的查找适合或者最新的包:

在这里插入图片描述


▚ 03 依赖包的安装


假设我们将gcc及其依赖包,都安装在/home/dabai普通用户目录下。

 3.1 安装gmp

$ cd /home/dabai
$ tar -xzvf gmp-4.3.2.tar.gz
$ cd gmp-4.3.2

$ ./configure --prefix=/home/dabai/gmp-4.3.2
$ make && make install

 3.2 安装mpfr

$ cd /home/dabai
$ tar -xzvf mpfr-2.4.2.tar.gz
$ cd mpfr-2.4.2

$ ./configure --prefix=/home/dabai/mpfr-2.4.2 --with-gmp=/home/dabai/gmp-4.3.2
$ make && make install

P.S. 若遇到问题,请参考下面的 “06 扫雷”篇。

 3.3 安装mpc

$ cd /home/dabai
$ tar -xzvf mpc-1.0.1.tar.gz
$ cd mpc-1.0.1

$ ./configure --prefix=/home/dabai/mpc-1.0.1 --with-gmp=/home/dabai/gmp-4.3.2 --with-mpfr=/home/dabai/mpfr-2.4.2
$ make && make install

 3.4 安装isl

$ cd /home/dabai
$ mkdir isl   #因isl不支持当前目录安装,所以需新建一个
$ tar -xzvf isl-0.24.tar.gz
$ cd isl-0.24

$ ./configure --prefix=/home/dabai/isl --with-gmp-prefix=/home/dabai/gmp-4.3.2
$ make && make install

在这里插入图片描述


▚ 04 GCC安装


$ cd /home/dabai
$ tar -xzvf gcc-8.3.0.tar.gz
$ cd gcc-8.3.0
$ mkdir build && cd build

$ ../configure  --prefix=/home/dabai/gcc-8.3.0 --with-gmp=/home/dabai/gmp-4.3.2 --with-mpfr=/home/dabai/mpfr-2.4.2 --with-mpc=/home/dabai/mpc-1.0.1 --with-isl=/home/dabai/isl --enable-checking=release --enable-languages=c,c++ --disable-multilib
$ make && make install

在这里插入图片描述


▚ 05 配置环境变量


$ cd ~
$ vim .bashrc
  • 在.bashrc中添加如下命令:
export PATH=/home/dabai/gcc-8.3.0/bin:$PATH
  • 保存并退出.bashrc,然后在shell执行:
$ source .bashrc
  • 最后,验证GCC是否安装成功:
$ gcc --version

在这里插入图片描述

在这里插入图片描述


▚ 06 扫雷


  • 遇到的问题:安装过程中,可能会出现类似这样的情况error while loading shared libraries: libmpfr.so.6: cannot open shared object file: No such file or directory

  • 解决方法: 上述3.2步骤已经成功完成后,理论上libmpfr.so.6会存在/home/dabai/mpfr-2.4.2/lib目录中。此时,我们可以手动添加该库的所在路径,即使用命令export LD_LIBRARY_PATH=/home/dabai/mpfr-2.4.2/lib即可。

在这里插入图片描述


▚ 07 拓展


🌺 简单介绍升级到更高的gcc版本gcc-11.3.0,所需要的依赖包版本,并提供一键下载的链接。

  1. gmp-6.1.2
  2. mpfr-4.0.2
  3. mpc-1.1.0
  4. isl-0.24

▚  参考材料








在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 22
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值