在高版本gcc中安装低版本gcc出错

CentOS 7.6对gcc版本降级

说明
系统版本:CentOS 7.6
gcc版本:7.1.0
准备降级至gcc版本:4.8.5
理由:在使用gcc7.1.0编译某些程序时会因版本过新而报错,所以对gcc进行降级

具体操作流程
查询当前gcc版本
命令:gcc -v

下载所需版本的gcc压缩包
网址: http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/

安装所需版本gcc
命令:
tar -xvf gcc-4.8.5.tar.bz2
cd gcc-4.8.5/
./contrib/download_prerequisites
mkdir build
cd build
../configure --prefix=/usr/local/gcc4.8.5 --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install

注意事项
make耗时很长,可能需要用上一个小时左右。

另外,在make 时可能会报错:

cfns.gperf:101:1: error: 'const char* libc_name_p(const char*, unsigned int)' redeclared inline with 'gnu_inline' attribute   
1
原因是因为此时是用高版本的gcc去编译低版本gcc。
解决方法如下:
修改要编译的低版本gcc代码,参考链接:
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ec1cc0263f156f70693a62cf17b254a0029f4852.
要修改的文件的三个文件所在位置:/gcc-4.8.5/gcc/cp
三个文件分别是:
cfns.gperf、cfns.h、except.c
按照参考链接进行修改即可,行最前面是 + 的代表要加进代码里的内容,行最前面是 - 的代表要从代码里减去的,对应的行数可能会稍有不同,仔细查看即可发现。
修改完成后再进行make,然后进行make install安装即可。

gcc高低版本切换
先放上这部分我所参考的博客信息:
作者:lakemi
来源:CSDN
原文链接: https://blog.csdn.net/lake1314/article/details/80097516.

首先查看当前安装有多少个gcc版本

命令:find /usr -name gcc
1
大概会显示如下:

/usr/lib/gcc
/usr/local/lib/gcc
/usr/local/bin/gcc
/usr/local/libexec/gcc
/usr/bin/gcc

若要知道这些gcc对应的都是哪个版本,只需敲如下命令

命令:/usr/local/bin/gcc -v
显示结果:gcc version 7.1.0 (GCC)

而/usr/local/bin/gcc也正是系统当前使用的gcc版本。
下面将介绍如何去切换成我们所需的gcc版本

更改gcc:
mkdir -p /usr/local/bin/gcc-6.1.0
mv /usr/local/bin/gcc /usr/local/bin/gcc-6.1.0 
ln -s /usr/bin/gcc /usr/local/bin/gcc

更改g++:
mkdir -p /usr/local/bin/gcc-6.1.0
mv /usr/local/bin/gcc /usr/local/bin/gcc-6.1.0
ln -s /usr/bin/gcc /usr/local/bin/gcc

更改c++:
mkdir -p /usr/local/bin/gcc-6.1.0
mv /usr/local/bin/gcc /usr/local/bin/gcc-6.1.0
ln -s /usr/bin/gcc /usr/local/bin/gcc

上述命令完成后再敲

gcc -v
1
就可以看到此时运行的gcc已经切换成我们所要的版本了

以上是我根据自己遇到的问题及实际的情况收集到解决方法,当然也试了不少行不通的方法,在此写一篇博客记录一下,也希望能帮到遇到同样问题的朋友,同时对提出以上方法的各位表示感谢!

另外本博客被索引的博客网址为:

(25条消息) 升级gcc8.2.0 新增降级为gcc4.8.5_kui9702的博客-CSDN博客
————————————————
版权声明:本文为CSDN博主「xzz3493」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_36023181/article/details/108292273

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值