• 欢迎访问sadsu网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。
  • 最新版Git主题已支持说说碎语功能,可像添加文章一样直接添加说说,新建说说页面即可,最后重新保存固定连接,
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏sadsu吧

CentOS 6.8 升级GCC G++ (当前最新版本为v6.2.0)

VPS组件 admin 4年前 (2016-10-19) 69次浏览 0个评论

CentOS 6.8 升级GCC G++ (当前最新GCC/G++版本为v6.1.0)

没有便捷方式,

yum update….   yum install

或者 添加yum 的 repo 文件 也不行, 只能更新到 4.4.7!

then,  只能手动编译安装了,那么开始第一步下载源代码吧,GO!

1、 获取安装包并解压


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

tar -jxvf gcc-6.2.0.tar.bz2

当然,http://ftp.gnu.org/gnu/gcc  里面有所有的gcc版本供下载,最新版本已经有6.2.0啦.

建议下载.bz2的压缩包,文件更小,下载时间更少.

如果是mini版的centos请安装bzip2


yum install bzip2

2、 下载供编译需求的依赖项

参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。


cd gcc-6.1.0

./contrib/download_prerequisites 

3、 建立一个目录供编译出的文件存放


mkdir gcc-build-6.2.0

cd gcc-build-6.2.0

4、 生成Makefile文件


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

5、 编译


make -j4

-j4选项是make对多核处理器的优化,如果不成功请使用 make

然后是漫长的等待,我的vps用了90分钟才make好。

6、 安装


make install

(安装需要root权限!)

查看安装


ls /usr/local/bin | grep gcc

7、 重启,然后查看gcc版本


gcc -v

8、 写个C++11 特性的程序段 测试

tryCpp11.cc 代码省略….

g++ -std=c++11 -o tryCpp11 tryCpp11.cc

 

9、升级

gcc

,生成的动态库没有替换老版本

gcc

的动态库

源码编译升级安装了

gcc

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

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

的问题。这是因为升级

gcc

时,生成的动态库没有替换老版本

gcc

的动态库导致的,将

gcc

最新版本的动态库替换系统中老版本的动态库即可解决。

9.1 运行以下命令检查动态库:


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

从输出可以看出,

gcc

的动态库还是旧版本的。说明出现这些问题,是因为升级

gcc

时,生成的动态库没有替换老版本

gcc

的动态库。

9.2 执行以下命令,查找编译

gcc

时生成的最新动态库:


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

将上面的最新动态库

libstdc++.so.6.0.22

复制到

/usr/lib64

目录下


cd /usr/lib64

cp /root/gcc-6.2.0/gcc-build-6.2.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 .

9.3 删除原来软连接:


rm -rf libstdc++.so.6

9.4 将默认库的软连接指向最新动态库:


ln -s libstdc++.so.6.0.22 libstdc++.so.6

9.5 默认动态库升级完成。重新运行以下命令检查动态库:


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

可以看到 输出有”GLIBCXX_3.4.22″ 了

ps:

如果运行./configure 会报错,错误提示为:

configure: error: C++ preprocessor “/lib/cpp” fails sanity 
check See `config.log’ for more details

解决办法:出现该情况是由于c++编译器的相关package没有安装,以root用户登陆,在终端上执行:


yum install glibc-headers gcc-c++

极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CentOS 6.8 升级GCC G++ (当前最新版本为v6.2.0)
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址