【GCC】gcc4.8.5升级到版本gcc5.4.0【其他版本通用】

本文介绍如何在Centos7系统中将默认的GCC4.8.5升级到GCC5.4.0,包括安装包下载、服务器操作步骤、常见问题解决方法等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

👨‍🎓博主简介

  🏅优快云博客专家
  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


一、前言

  因为Centos7默认的是gcc4.8.5,但是有时候要用到gcc5.4,因为,我来教大家如何从gcc4.8.5升到到gcc5.4.0。
  如果遇到没有网络的情况下,想要安装gcc,只需要一个安装包,就可以安装;
详细请看:👉Linux中gcc4.8.5升级到gcc5.4.0用已经编译好的安装包升级(重点是不用编译安装,可以更省时)👈

需要注意的是 centos系统 和 ubuntu系统的区别

  • centos系统的库放在/lib64/下;
  • ubuntu系统的库放在/usr/lib/x86_64-linux-gnu/下。

二、GCC 5.4安装包下载

gcc安装包下载地址:

5.4安装包下载地址:http://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz
其他版本安装包下载地址:http://ftp.gnu.org/gnu/gcc/

可以在服务器上使用wget下载,也可以直接下载上传到服务器上;

三、服务器操作

3.1 下载所需依赖包

# 安装gcc gcc-c++ glibc-static
yum -y install gcc gcc-c++ glibc-static
# 安装bzip2
yum -y install bzip2

3.2 解压 GCC 安装包

tar -xvf gcc-5.4.0.tar.gz

3.3 下载相关的依赖和组件

#先切换到gcc5.4的目录下
cd gcc-5.4.0
#下载相关的依赖和组件
./contrib/download_prerequisites

如果下载不了连不到gcc官网可以去清华源根据所需下载:https://mirrors.tuna.tsinghua.edu.cn/gnu/

3.4 新建一个build目录在gcc5.4目录中用于存放编译文件

#新建一个文件夹存放编译的文件
mkdir -p build

3.5 编译、安装

编译安装大概是一个小时多,还请耐心等待

#创建完文件夹之后,进入文件夹
cd build
#进入之后编译,指定目录编译安装;
../configure -prefix=/ --enable-checking=release --enable-languages=c,c++ --disable-multilib 
#完了之后编译并安装,编译安装大概1个小时左右
make && make install

如果指定安装目录为:/usr/local/下

../configure -prefix=/usr/local/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
那么编译安装完就需要手动去软连接或者复制一下libstdc++.so.6.0.21库到/lib64/下去;
ln -s /usr/local/lib64/libstdc++.so.6.0.21 /lib64/libstdc++.so.6

3.6 查看是否安装成功

查看gcc版本:

gcc --version

在这里插入图片描述
查看库:

strings /lib64/libstdc++.so.6 | grep GLIBC

# ubuntu系统查看方式
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC

在这里插入图片描述

有这些就代表安装成功。

四、编译完成gcc还是显示4.8.5解决方法

如果gcc -v查看还是4.8.5的话,先strings /lib64/libstdc++.so.6 | grep GLIBC 查看有没有上图这些库”GLIBCXX_3.4.21“,有的话,可以软连接一下gcc就行了,mv /bin/gcc /bin/gcc.bak &&ln -s /home/gcc-5.4.0/build/gcc/xgcc /bin/gcc,完成软连接之后就再次gcc --version、或者gcc -v查看版本就行,这时候就会显示5.4了。

/home/gcc-5.4.0/build/gcc/xgcc就是你在哪编译的路径。

五、编译完成gcc的动态库还是不对的话解决方法

如果编译完成遇到了gcc的动态库还是不对的话,就比如:
我编译了一个gcc5.4,编译完之后查动态库应该会看到GLIBCXX 3.4.21,但显示的还是GLIBCXX_3.4.19,那么这个时候呢,我们可以查询:libstdc++.so.6*,一般都是在编译的build里面;

find / -name libstdc++.so.6*

在这里插入图片描述

然后我们可以看到gcc5.4的对应版本是libstdc++.so.6.0.21,这时候我们在查询一下libstdc++.so.6.0.21

find / -name libstdc++.so.6.0.21

在这里插入图片描述

然后将这个路径的libstdc++.so.6.0.21复制到/lib64/改名为libstdc++.so.6,或者是软连接过去;(二选一)

# 先进行备份
mv /lib64/libstdc++.so.6 /lib64/libstdc++.so.6-4.8.5

# 复制过去
cp -ar /application/gcc-5.4.0/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /lib64/libstdc++.so.6

# 软连接过去
ln -s /application/gcc-5.4.0/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /lib64/libstdc++.so.6

二选一

放到lib64下之后我们可以通过strings /lib64/libstdc++.so.6 | grep GLIBC查看。
这样就可以看到GLIBCXX 3.4.21了。

在这里插入图片描述

六、相关文章

文章标题文章链接
Linux中gcc4.8.5升级到gcc5.4.0用已经编译好的安装包升级(重点是不用编译安装,可以更省时)https://blog.youkuaiyun.com/liu_chen_yang/article/details/123735242
Centos7 gcc4.8.5升级到版本gcc5.4.0https://blog.youkuaiyun.com/liu_chen_yang/article/details/123711779
gcc升级4.7以上 参考文档 https://blog.51cto.com/191226139/2066137 安装编译依赖软件包 yum install gcc gcc-c++ glibc-static -y cp -a /mnt/backup/software/php-7.3.9.tar.gz /root/ 下载gcc源码包与依赖包 wget -c http://mirror.koddos.net/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.gz tar -zxvf /root/gcc-src/gcc-4.8.5.tar.gz -C /root/ tar xvf /root/gcc-src/cloog-0.18.4.tar.gz -C /root/gcc-4.8.5/ tar xvf /root/gcc-src/gmp-6.1.2.tar.xz -C /root/gcc-4.8.5/ tar xvf /root/gcc-src/isl-0.14.tar.gz -C /root/gcc-4.8.5/ tar xvf /root/gcc-src/mpc-1.0.3.tar.gz -C /root/gcc-4.8.5/ tar xvf /root/gcc-src/mpfr-3.1.4.tar.gz -C /root/gcc-4.8.5/ 或者 tar xvf /root/gcc-src/mpfr-3.1.4.tar.bz2 -C gcc-4.8.5/ mv /root/gcc-4.8.5/cloog-0.18.4 /root/gcc-4.8.5/cloog mv /root/gcc-4.8.5/gmp-6.1.2/ /root/gcc-4.8.5/gmp mv /root/gcc-4.8.5/isl-0.14/ /root/gcc-4.8.5/isl mv /root/gcc-4.8.5/mpc-1.0.3/ /root/gcc-4.8.5/mpc mv /root/gcc-4.8.5/mpfr-3.1.4/ /root/gcc-4.8.5/mpfr cd /root/gcc-4.8.5/ mkdir gcc-build && cd gcc-build ../configure --prefix=/usr/local/gcc-4.8.5 --enable-checking=release --enable-bootstrap --enable-languages=c,c++ --disable-multilib --enable-gather-detailed-mem-stats --with-long-double-128 出错后清空编译目录下的相关文件 # make distclean 查看CPU的核数,使用时应使用2倍值 lscpu |grep -A 1 'Model name' make -j 4 或者 make 编译过程约40~50分钟左右,占用2.7G空间 make install 检验版本 /usr/local/gcc-4.8.5/bin/gcc -dumpversion /usr/local/gcc-4.8.5/bin/g++ -dumpversion /usr/local/gcc-4.8.5/bin/c++ -dumpversion 添加LD_LIBRARY_PATH 临时生效 export LD_LIBRARY_PATH="/usr/local/gcc-4.8.5/lib64:$LD_LIBRARY_PATH" 永久生效 echo '/usr/local/gcc-4.8.5/lib64' > /etc/ld.so.conf.d/gcc4.8.5.conf ldconfig 出现以下提示,把这个文件删除了或忽略它:ldconfig: /usr/local/gcc-4.8.5/lib64/libstdc++.so.6.0.19-gdb.py is not an ELF file - it has the wrong magic bytes at the start. rm -rf /usr/local/gcc-4.8.5/lib64/libstdc++.so.6.0.19-gdb.py cd /usr/local/gcc-4.8.5/bin && ln -s gcc cc 添加环境变量 echo 'export PATH=/usr/local/gcc-4.8.5/bin:$PATH' >> /etc/profile source /etc/profile 查看版本 gcc -v cc -v
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A-刘晨阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值