<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Wed, 20 Feb 2019 14:26:44 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0)<br/><br/>没有便捷方式,<br/><br/>yum update....&nbsp;&nbsp; yum install <br/><br/>或者 添加yum 的 repo 文件 也不行, 只能更新到 4.4.7!<br/><br/>then,&nbsp;&nbsp;只能手动编译安装了,那么开始第一步下载源代码吧,GO!<br/><br/>1、 获取安装包并解压<br/><br/>wget <a href="http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2" target="_blank">http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2</a><br/><br/>tar -jxvf gcc-6.1.0.tar.bz2<br/><br/>当然，<a href="http://ftp.gnu.org/gnu/gcc&nbsp;&nbsp;" target="_blank">http://ftp.gnu.org/gnu/gcc&nbsp;&nbsp;</a>里面有所有的gcc版本供下载，最新版本已经有6.1.0啦.<br/><br/>建议下载.bz2的压缩包,文件更小,下载时间更少.<br/><br/>2、 下载供编译需求的依赖项<br/><br/>参考文献[1]中说：这个神奇的脚本文件会帮我们下载、配置、安装依赖库，可以节约我们大量的时间和精力。<br/><br/>cd gcc-6.1.0<br/><br/>./contrib/download_prerequisites　<br/><br/>3、 建立一个目录供编译出的文件存放<br/><br/>mkdir gcc-build-6.1.0<br/><br/>cd gcc-build-6.1.0<br/><br/>4、 生成Makefile文件<br/><br/>../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib<br/><br/>5、 编译<br/><br/>make -j4<br/><br/>-j4选项是make对多核处理器的优化，如果不成功请使用 make，相关优化选项可以移步至参考文献[2]。<br/><br/>（注意：此步骤非常耗时,我虚拟机耗时近3小时; 实体机近80分钟,CPU基本是满的,内存也使用不少）<br/><br/>6、 安装<br/>make install<br/><br/>(安装需要root权限!)<br/><br/>查看安装<br/><br/>ls /usr/local/bin &#124; grep gcc<br/><br/>7、 重启，然后查看gcc版本<br/>gcc -v<br/><br/>8、 写个C++11 特性的程序段 测试<br/>tryCpp11.cc 代码省略....<br/><br/>g++ -std=c++11 -o tryCpp11 tryCpp11.cc<br/><br/> <br/><br/>9、升级gcc，生成的动态库没有替换老版本gcc的动态库<br/><br/>源码编译升级安装了gcc后，编译程序或运行其它程序时，有时会出现类似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的问题。这是因为升级gcc时，生成的动态库没有替换老版本gcc的动态库导致的，将gcc最新版本的动态库替换系统中老版本的动态库即可解决。<br/><br/>9.1 运行以下命令检查动态库：<br/><br/>strings /usr/lib64/libstdc++.so.6 &#124; grep GLIBC<br/><br/>从输出可以看出，gcc的动态库还是旧版本的。说明出现这些问题，是因为升级gcc时，生成的动态库没有替换老版本gcc的动态库。<br/><br/>9.2 执行以下命令，查找编译gcc时生成的最新动态库：<br/><br/>find / -name "libstdc++.so*"<br/><br/>将上面的最新动态库libstdc++.so.6.0.22复制到/usr/lib64目录下<br/><br/>cd /usr/lib64<br/><br/>cp /root/Downloads/gcc-6.1.0/gcc-build-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 ./<br/><br/>9.3 删除原来软连接：<br/><br/>rm -rf libstdc++.so.6<br/><br/>9.4 将默认库的软连接指向最新动态库：<br/><br/>ln -s libstdc++.so.6.0.22 libstdc++.so.6<br/><br/>9.5 默认动态库升级完成。重新运行以下命令检查动态库：<br/><br/>strings /usr/lib64/libstdc++.so.6 &#124; grep GLIBC<br/><br/>可以看到 输出有"GLIBCXX_3.4.21" 了<br/><br/> 
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>