GCC 版本升级 (源码编译): configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+

问题描述

GCC 在构建的过程中需要依赖于各种库和工具包,具体可以参考Prerequisites for GCC。而一般在编译 GCC 的过过程中最为常见的问题就是遇见 configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+. 错误。该错误出现在执行 configure 命令进行编译配置并生成 Makefile 的时候。要想解决这个问题,则我们必须提前编译好满足相应版本条件的 GMP 4.2+ (GNU Multiple Precision Library (GMP) version 4.3.2 (or later)), MPFR 3.1.0+ (MPFR Library version 3.1.0 (or later)) 和 MPC 0.8.0+ (MPC Library version 0.8.0 (or later)) 这三个库。

解决方法

1. 下载 GMP,MPFR,MPC

GCC在构建的过程中需要依赖于各种库和工具包,详细的内容请参考: Prerequisites for GCC 关于各种依赖包和工具的下载可以在下面链接所对应的文件目录中去找寻,也可以在各自的官网进行下载: https://gcc.gnu.org/pub/gcc/infrastructure/.

通过 wget 命令可以很简单的从 https://gcc.gnu.org/pub/gcc/infrastructure/ 下载GMP,MPFR,MPC这三个库的源代码压缩包文件。

wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.2.1.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz
注意安装顺序,因为依赖问题,所以首先安装GMP,然后是MPFR,然后是MPC

2.1. 编译GMP

编译的时候需要记录下 --prefix 参数的值,也就是我们自定义的gmp的安装目录,后面编译其他两个库和gcc的时候需要使用。

tar -xvjf gmp-6.2.1.tar.bz2
cd gmp-6.2.1/

./configure --prefix=$(pwd)
make
make install

2.2. 编译MPFR

注:/root/hj 为我自己服务器的绝对路径,各位可以按需修改;

tar -xvjf mpfr-4.1.0.tar.bz2
cd mpfr-4.1.0/

./configure --prefix=$(pwd) \
    --with-gmp-include=/root/hj/gmp-6.2.1/include \
    --with-gmp-lib=/root/hj/gmp-6.2.1/lib \

make
make install

2.3. 编译MPC

tar -xvzf mpc-1.2.1.tar.gz
cd mpc-1.2.1/

./configure --prefix=$(pwd) \
    --with-gmp-include=/root/hj/gmp-6.2.1/include \
    --with-gmp-lib=/root/hj/gmp-6.2.1/lib \
    --with-mpfr-include=/root/hj/mpfr-4.1.0/include \
    --with-mpfr-lib=/root/hj/mpfr-4.1.0/lib \

make
make install

2.4. 配置动态库 (so)到 LD_LIBRARY_PATH 环境变量

在终端运行下面命令可以将上面所编译好的三个库的动态库 (so)文件配置到 LD_LIBRARY_PATH 环境变量中,如果需要让配置永久生效,则需将下面的代码添加到 ~/.bashrc 文件中 并运行 source ~/.bashrc 命令即可。

export LD_LIBRARY_PATH=prefolder/gmp-6.2.1/lib:prefolder/mpfr-4.1.0/lib:prefolder/mpc-1.2.1/lib:$LD_LIBRARY_PATH

借鉴:GCC 版本升级 (源码编译): configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+ - 知乎 (zhihu.com)

也看过很多别人的,但是这个是我认为正确的一篇文章

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值