CentOS升级gcc4.8.5

前端之家收集整理的这篇文章主要介绍了CentOS升级gcc4.8.5前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

因项目编译需要用c++11,需要升级Centosgcc版本到gcc4.8.5

一.安装Centso开发工具

# yum groupinstall "Development Tools"

二.下载gcc4.8.5

下载地址:http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2

三.解压

#tar -jxvf gcc-4.8.5.tar.bz2

四.执行命令,自动下载配置、依赖库

下载过程有点久,请蛋定。

# cd gcc-4.8.5

# ./contrib/download_prerequisites

五.建编译后的存放目录

# mkdir gcc-build-4.8.5

六.生成Makefile文件

# cd gcc-build-4.8.5

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

七.执行make,耗时大约1h

# make

八.安装

# make install

九.重启,测试

# reboot //一定要重启

# gcc -v

# g++ -v


十.库升级

编译程序或运行其它程序时,有时会出现类似:

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决

1.检查

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

2.找到 gcc 4.8.5 最新的库文件

#find / -name "libstdc++.so*"

/usr/lib64/libstdc++.so.6.0.13
/usr/lib64/libstdc++.so.6/usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libstdc++.so/usr/lib/gcc/x86_64-redhat-linux/4.4.4/libstdc++.so/usr/lib/vmware-tools/lib64/libstdc++.so.6/usr/lib/vmware-tools/lib64/libstdc++.so.6/libstdc++.so.6/usr/lib/vmware-tools/lib32/libstdc++.so.6/usr/lib/vmware-tools/lib32/libstdc++.so.6/libstdc++.so.6/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyc/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/lib/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/local/lib64/libstdc++.so.6.0.19/usr/local/lib64/libstdc++.so.6/usr/local/lib64/libstdc++.so/usr/local/lib64/libstdc++.so.6.0.19-gdb.py
/opt/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19/opt/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6/opt/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so/opt/gcc-4.8.5/gcc-build-4.8.5/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19/opt/gcc-4.8.5/gcc-build-4.8.5/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6/opt/gcc-4.8.5/gcc-build-4.8.5/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so/opt/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19/opt/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6/opt/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so

上面粗体加黑libstdc++.so.6.0.19,就是目前4.8.5的新的库文件了。

3.复制这个库文件到指定目录,并修改软连接

# cp /opt/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19 /usr/lib64

# cd /usr/lib64

# rm libstdc++.so.6

# ln -s libstdc++.so.6.0.19 libstdc++.so.6

4.检查一遍

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

GLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_3.4.18GLIBCXX_3.4.19

...

(完成)

猜你在找的CentOS相关文章