使用yum安装是不可能了,各大仓库也没有,只能自己编译安装了。
系统为CentOS 6.5,gcc为4.4.7
1 下载源代码包
当前最新版为6.2:
wget http://ftp.gnu.org/gnu/gcc/gcc-6.2.0/gcc-6.2.0.tar.bz2
也可以自行下载其他版本http://ftp.gnu.org/gnu/gcc
2 解压
tar jxf gcc-6.2.0.tar.bz2
3 下载编译依赖
cd gcc-6.2.0 ./contrib/download_prerequisites
经过漫长的等待,速度太慢了~
4 生成Makefile文件
先建一个编译的目录
mkdir gcc-build-6.2.0 cd gcc-build-6.2.0/ ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
5 编译
make -j4
4表示使用4个核心,根据你的CPU来指定。也可不指定任何参数。
6 安装
sudo make install
7 验证
gcc -v
还有原来的版本,重启后,再验证OK
8 测试
写个测试的程序测试一下:
g++ -std=c++11 -o testCpp11 testCpp11.cpp
顺利编译成功,执行./testCpp11提示:
./testCpp11: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./testCpp11) ./testCpp11: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./testCpp11) ./testCpp11: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./testCpp11)
看来动态库并没有更新。
9 更新动态库
查看动态库的版本:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13
确实没有更新,默认情况下,会安装在如下目录:
/usr/local/lib64/libstdc++.so.6.0.22
简单了,将原来的库替换为上面的就可以了:
rm -rf /usr/lib64/libstdc++.so.6 ln -s /usr/local/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6
然后再查看动态库的版本:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
结果
GLIBCXX_3.4.22