Centos 6.5 升级gcc6.1
2016-10-25 16:40
120 查看
转自http://www.cnblogs.com/lzpong/p/5755678.html 增加自己犯的错误注意点
1、 获取安装包并解压
wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2
tar -jxvf gcc-6.1.0.tar.bz2
当然,http://ftp.gnu.org/gnu/gcc 里面有所有的gcc版本供下载,最新版本已经有6.1.0啦.
建议下载.bz2的压缩包,文件更小,下载时间更少.
2、 下载供编译需求的依赖项
参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
cd gcc-6.1.0
./contrib/download_prerequisites
3、 建立一个目录供编译出的文件存放
mkdir gcc-build-6.1.0
cd gcc-build-6.1.0
4、 生成Makefile文件
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
5、 编译
make -j4
-j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]。
(注意:此步骤非常耗时,我虚拟机耗时近3小时; 实体机近80分钟,CPU基本是满的,内存也使用不少)
***注意 此处我在编译时出现错误 make不加参数时错误提醒比较明显 前面的依赖库 不要configure&make 执行下载脚本就行
make install
(安装需要root权限!)
查看安装
ls /usr/local/bin | grep gcc
gcc -v
tryCpp11.cc 代码省略....
g++ -std=c++11 -o tryCpp11 tryCpp11.cc
9、升级
源码编译升级安装了
9.1 运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
从输出可以看出,
9.2 执行以下命令,查找编译
find / -name "libstdc++.so*"
将上面的最新动态库
cd /usr/lib64
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 ./
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.21" 了
1、 获取安装包并解压
wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2
tar -jxvf gcc-6.1.0.tar.bz2
当然,http://ftp.gnu.org/gnu/gcc 里面有所有的gcc版本供下载,最新版本已经有6.1.0啦.
建议下载.bz2的压缩包,文件更小,下载时间更少.
2、 下载供编译需求的依赖项
参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
cd gcc-6.1.0
./contrib/download_prerequisites
3、 建立一个目录供编译出的文件存放
mkdir gcc-build-6.1.0
cd gcc-build-6.1.0
4、 生成Makefile文件
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
5、 编译
make -j4
-j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]。
(注意:此步骤非常耗时,我虚拟机耗时近3小时; 实体机近80分钟,CPU基本是满的,内存也使用不少)
***注意 此处我在编译时出现错误 make不加参数时错误提醒比较明显 前面的依赖库 不要configure&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.21' 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/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 ./
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.21" 了
相关文章推荐
- Centos 6.5升级git版本的办法
- CentOS6.5-升级GCC5.3.0
- centos6.5 升级php版本
- CentOS 6.5升级GCC 4.9.1
- centos6.5内核升级
- Centos 6.5升级到Git2.1.2的步骤
- centos 6.5安装node npm并升级npm 到指定版本
- CentOS 6.5升级Python后yum不可用的解决方案
- centos 6.2升级6.5遇到的问题及解决方法
- CentOS 6.5 编译升级内核
- CentOS 6.5 升级内核的教程
- 升级CentOS6.5安装镜像中的Linux内核版本
- CentOS6.5升级内核到3.10.28
- centos6.5 gcc升级到4.8.2
- centos6.5 下 python2.6.6升级至python2.7.12
- centos 6.5 gcc g++ 升级至 4.8+
- CentOS6.5:升级了python,把输入法给玩坏了
- [心得]给CentOS6.5升级开发工具gcc
- centos6.5升级gcc 4.4.7为最新版4.9.1
- centos6.5 升级内核到3.2