Linux CentOS7 gcc版本更换为5

        因为 edk2 等需求,需要将现有的 Linux CentOS 7.6 的 gcc 版本修改成 5 。查阅了一些相关资料,整合了自己的问题,现将完整步骤和遇到的问题记录下来下(●'◡'●)【摸鱼x 学习√】

        查看当前 gcc 版本:gcc --version

[root@localhost ~]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

        题外话:查找资料显示,一般默认都自带 gcc ,版本为 4.8.5 。如果 Linux 经验比较多的大佬,要下别的版本的 gcc 可以直接移步这里,找到相应的 gcc 版本和依赖下载安装即可:

http://ftp.gnu.org/gnu/gcc/

Index of /pub/gcc/infrastructure

        回到正题,以下是我的方法,尽可能简单详细,安装版本为 gcc-5.3.0 。

        1.找一个目录作为待会下载安装的根据地,比如我用的是 /opt ,切换目录:

cd /opt

        2.然后用这个方法下载,相对简单,下载 gcc-5.3.0 安装包:

wget http://ftp.gnu.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz

        3.下载完成后解压:

tar -zxf gcc-5.3.0.tar.gz

        4.创建安装目录,切换到此目录:

mkdir /usr/local/gcc-5.3.0/

cd /usr/local/gcc-5.3.0/

        5.配置安装:

/opt/gcc-5.3.0/configure -prefix=/usr/local/gcc-5.3.0

        这个时候会报错,是正常的,因为它没依赖,找一下 error 中有这么一句:

        借此机会我们能知道他需要什么依赖以及依赖的版本,GMP4.2,MPFR2.4.0,MPC0.8.0。

        6.回到 opt ,下载并所需的依赖:

cd /opt

        7.首先是 GMP4.3.2 ,下载、解压、创建目录、切换目录、配置安装、编译、安装:

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2

tar jxvf gmp-4.3.2.tar.bz2

mkdir /usr/local/gmp-4.3.2

cd /usr/local/gmp-4.3.2

/opt/gmp-4.3.2/configure -prefix=/usr/local/gmp-4.3.2

make

make install

        8.然后是 MPFR2.4.2 :

cd /opt

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2

tar jxvf mpfr-2.4.2.tar.bz2

mkdir /usr/local/mpfr-2.4.2

cd /usr/local/mpfr-2.4.2

/opt/mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2

make

make install

        9.最后是 MPC0.8.1 :

cd /opt

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz

tar -zxf mpc-0.8.1.tar.gz

mkdir /usr/local/mpc-0.8.1

cd /usr/local/mpc-0.8.1

/opt/mpc-0.8.1/configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2

make

make install

        10.三个依赖都安装完,回来重新进行 gcc 配置安装:

cd /usr/local/gcc-5.3.0

/opt/gcc-5.3.0/configure --prefix=/usr/local/gcc-5.3.0 -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1

        11.编译,时间很长可能一小时左右:

make

        这个时候我遇到了个奇怪的问题,编译几分钟后出现的,报错如下:

checking for i686-pc-linux-gnu-gcc... /home/hy/下载/gcc-build/./gcc/xgcc -B/home/hy/下载/gcc-build/./gcc/ -B/usr/local/gcc-5.3.0/i686-pc-linux-gnu/bin/ -B/usr/local/gcc-5.3.0/i686-pc-linux-gnu/lib/ -isystem /usr/local/gcc-5.3.0/i686-pc-linux-gnu/include -isystem /usr/local/gcc-5.3.0/i686-pc-linux-gnu/sys-include
checking for suffix of object files... configure: error: in `/home/hy/下载/gcc-build/i686-pc-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgcc] Error 1
make[2]: Leaving directory `/home/hy/下载/gcc-build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/hy/下载/gcc-build'
make: *** [all] Error 2...

        根据错误提示可以查看 config.log 有更详细的信息。

        解决方法是将 mpc 、 gmp 和 mpfr 目录加到环境变量中,在 /etc/profile 文件末尾加上: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib ,之后运行 source /etc/profile

        因为这个错,所以重新回到错误之前的步骤删文件再来〒▽〒

        12.回到正题,如果编译正常的情况下会进行一小时左右,如果编译完成没有报错,安装:

make install

        13.添加 gcc , g++ 软连接:

ln -s /usr/local/gcc-5.3.0/bin/gcc gcc 
ln -s /usr/local/gcc-5.3.0/bin/g++ g++

        14.添加环境变量:

vim /etc/bashrc

        添加如下内容: 

#gcc

LD_LIBRARY_PATH=:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/gcc-5.3.0/lib:/usr/local/gcc-5.3.0/lib64

#export LD_LIBRARY_PATH

        重新 gcc --version 可以查到 gcc 版本了。

        如果这里没有生效,可以试试下面的方法。

        查看系统的 PATH 环境变量,确保新版本的 gcc 所在的路径已经被包含在 PATH 中。可以通过以下命令查看 PATH :

echo $PATH

       如果你看到新版本的 gcc 所在的路径没有在其中,你需要将它添加到 PATH 变量中。

vim ~/.bashrc

        添加如下内容:

export PATH=/usr/local/gcc-5.3.0/bin:$PATH

        保存退出后更新它:

source ~/.bashrc

        重新查看 gcc --version , gcc 版本更换完成


        参考资料:

        linux升级gcc版本详细教程_gcc升级_编程砖家的博客-CSDN博客

        linux编译安装gcc5.3.0 - 菜的掉渣 - 博客园 (cnblogs.com)

        【解决方案】Centos6.10升级gcc4.4.7至gcc5.1.0_石头儿啊的博客-CSDN博客

        ubuntu 16.04 从gcc 5.4 安装gcc 5.3.0_gcc conftest.c_TinaO-O的博客-CSDN博客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值