更新gcc至v6.1.0版本
1.安装环境
centos6.x
已安装低版本gcc
2.安装准备
2.1新建目录gcc6,存放源码包
# mkdir gcc6
# cd gcc6
2.2下载源码包
PS:我在虚拟机里面下载到30%就卡住了,所以就在windows下载好,再传到centos上进行安装
# wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.gz
# tar -zxvf gcc-6.1.0.tar.gz
# cd gcc-6.1.0
2.3打开 download_prerequisites 脚本
# vim contrib/download_prerequisites
可以看到该文件就是执行一些下载指令,需要下载几个包,按照包名和版本号进行下载,在我的虚拟机中直接执行这个脚本,下载很慢,所以就手动下载了,操作如下
下载isl-0.15 , mpfr-2.4.2 , gmp-4.3.2 , mpc-0.8.1 , 下载的文件存放于 解压得到文件夹中
(建议用windows下载好后,在导入centos中)
# wget http://isl.gforge.inria.fr/isl-0.15.tar.bz2
# wget http://ftp.gnu.org/gnu/mpfr/mpfr-2.4.2.tar.bz2
# wget http://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
# wget http://pkgs.fedoraproject.org/repo/pkgs/libmpc/mpc-0.8.1.tar.gz/5b34aa804d514cc295414a963aedb6bf/mpc-0.8.1.tar.gz
将download_prerequisites 脚本中下载的行注释
如下图
3 开始安装
3.1 执行 修改后的 download_prerequisites 脚本 , 并生成Makefile文件
# ./contrib/download_prerequisites
#
./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
3.2 编译 , 安装
# make -j4 && make install
漫长的等待......
3.3更新动态库链接
找到新的动态库
# find / -name "libstdc++.so*"
# cd /usr/lib64
下面命令中,较长的路径是解压出来源码包的目录下的链接文件,将该文件复制到 /usr/lib64
# cp /root/gcc6/gcc-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 ./
删除原来的链接
# rm -rf libstdc++.so.6
指向新的链接
# ln -s libstdc++.so.6.0.22 libstdc++.so.6
安装完毕!
验证代码:代码中含有c++11的新内容即可
#include
#include
using namespace std;
int main( void )
{
string a;
a = to_string(123);
cout << a;
return 0;
}
编译,运行
# g++ -o test test.cpp
# ./test
输出
123
成功运行!