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


▚ 01 介绍


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

  • 本教程以非root用户使用源码安装 gcc-8.3.0

  • 【gcc下载网址】 https://ftp.gnu.org/gnu/gcc/
    在这里插入图片描述


▚ 02 安装说明

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

【普通用户+亲测成功】CentOS中升级gcc/g++,非root用户使用源码安装教程,附带gcc和所有依赖包的下载地址,解决库未找到的错误_第1张图片
  • 1. 全程共使用5个安装包(1个gcc,4个依赖包)。
  • 2. 首先,安装依赖包(注意它们的安装顺序)。
  • 3. 然后,安装gcc。(源码可在 https://gcc.gnu.org/ 或者 https://ftp.gnu.org/gnu/gcc/) 查找并下载。
  • 4. 最后,配置环境变量。

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

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


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

  • 【gmp】 https://ftp.gnu.org/gnu/gmp/
  • 【isl】 https://gcc.gnu.org/pub/gcc/infrastructure/
  • 【mpc】 https://ftp.gnu.org/gnu/mpc/
  • 【mpfr】 https://ftp.gnu.org/gnu/mpfr/

在这里插入图片描述


▚ 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
  • 【gcc-11.3.0及其依赖包】下载链接为:https://download.csdn.net/download/Xminyang/85545324

▚  参考材料


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





在这里插入图片描述

在这里插入图片描述

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

你可能感兴趣的:(Linux,CentOS升级gcc/g++,非root用户,源码安装)