centos6.10升级gcc到4.8.5

  1. 手工升级到4.8.5

yum支持的最高版本只到4.4.7 不支持:C++11

[root@centos888 modsecurity-v3.0.3]# rpm -qa | grep gcc
gcc-4.4.7-23.el6.x86_64
gcc-c++-4.4.7-23.el6.x86_64
libgcc-4.4.7-23.el6.x86_64
[root@centos888 modsecurity-v3.0.3]# 

手工升级到4.8.5

1、下载包:

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2

2、解压:

[root@centos888 ~]# tar -xvf gcc-4.8.5.tar.bz2 

3、运行gcc自带的脚本,会自动下载安装一些依赖

[root@centos888 ~]# cd gcc-4.8.5
[root@centos888 gcc-4.8.5]# ./contrib/download_prerequisites 

4、创建一个存放编译后文件的目录

[root@centos888 gcc-4.8.5]# mkdir gcc-build-4.8.5
[root@centos888 gcc-4.8.5]# cd gcc-build-4.8.5/

5、开始编译:

../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

注意,语句开头是两个点,上层目录的意思

6、安装,过程有点久

[root@centos888 gcc-build-4.8.5]# make && make install 

7、重启机器:

[root@centos888 ~]# reboot

8、查看版本:

[root@centos888 ~]# gcc --version
gcc (GCC) 4.8.5
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
[root@centos888 ~]# g++ --version
g++ (GCC) 4.8.5
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
[root@centos888 ~]# 

9、此时生成的动态库没有替换旧版本gcc的动态库

[root@centos888 ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
[root@centos888 ~]# 

10、查找编译gcc时生成的最新动态库

[root@centos888 ~]# find / -name "libstdc++.so*" | grep usr
/usr/local/lib64/libstdc++.so.6.0.19-gdb.py
/usr/local/lib64/libstdc++.so.6.0.19   #这个
/usr/local/lib64/libstdc++.so
/usr/local/lib64/libstdc++.so.6
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyo
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyo
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.py
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyc
/usr/lib64/libstdc++.so.6.0.13
/usr/lib64/libstdc++.so.6
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libstdc++.so
[root@centos888 ~]# 

11、上面的最新动态库libstdc++.so.6.0.19复制到/usr/lib64目录下,并重新建立软连接。

[root@centos888 ~]# cp /usr/local/lib64/libstdc++.so.6.0.19 /usr/lib64/
[root@centos888 ~]# cd /usr/lib64/
[root@centos888 lib64]# ll libstdc++.so.6
lrwxrwxrwx. 1 root root 19 7月   2 01:32 libstdc++.so.6 -> libstdc++.so.6.0.13
[root@centos888 lib64]# rm -f libstdc++.so.6
[root@centos888 lib64]# ln -s libstdc++.so.6.0.19 libstdc++.so.6
[root@centos888 lib64]# 

12、再次查看gcc版本

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

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:centos6.10升级gcc到4.8.5

本文作者:wangzhirui

发布时间:2019-11-25, 13:01:39

最后更新:2025-02-27, 02:04:01

原始链接:https://wangzhirui.com/2019/11/25/centos6-10升级gcc到4-8-5/

转载请保留原文链接及作者。

目录