本人Linux小白一枚,因为学习需要不得已摸索相关技能,由于无大师指点,走了很多弯路,在网上找了一些教程,但是因为缺乏基本知识无法理解其中的含义而无法达到活学活用,最终都没能成功实现。出现转机的是在某个群组里问了一个专业人士指点迷津,最终才恍然大悟,成功地打通了这个方法。
![b953406881e774e83c7df284d8edebc0.png](https://i-blog.csdnimg.cn/blog_migrate/f117bb5743f0cecd5b392d5bfd6b540b.jpeg)
本着无私分享的角度,我把亲测可用的方法贴文给大家,为小白们指明一条道路,这样达到事半功倍。其中现在看来方法也比较简单(PS:理解的东西才会变得容易)。
1、cat /etc/redhat-releas
查看当前的系统版本
2、 gcc -v
查看当前的gcc版本
3、yum -y install wget bzip2 gcc gcc-c++ glibc-headers
检查安装升级用到的一些工具
4、wget -c -P /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz
下载gcc-6.4.0到/opt/tmp/下,即为我们的安装路径,其他版本的可以将gcc版本进行替换。
5、cd /opt/tmp/
切换自下载和安装目录下
6、tar -zxvf gcc-6.4.0.tar.gz
解压安装包
7、cd gcc-6.4.0
打开解压文件
8、./contrib/download_prerequisites
下载gmp mpfr mpc等供编译需求的依赖项,All prerequisites downloaded successfully即为成功。
9、 mkdir build
在/opt/tmp/新建文件夹
10、cd build
打开新建文件夹
11、../configure --prefix=/usr/local/gcc-6.4.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
编译设置,这里版本号灵活替换
12、make
编译,这里耗时至少1h以上,可以去干别的了
13、make install
安装
14、gcc -v
查看安装的版本号,此时还是显示显示旧版
![792768215d745b3787b1294eafb2fdea.png](https://i-blog.csdnimg.cn/blog_migrate/c13c52c5aebdf5e733801d4b9ef89d1e.jpeg)
........................................................
继续操作
15、echo -e 'export PATH=/usr/local/gcc-6.4.0/bin:$PATH' >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh
配置
16、ln -sv /usr/local/gcc-6.4.0/include/ /usr/include/gcc
导出文件
17、ldconfig -v
配置生效
18、ldconfig -p |grep gcc
19、gcc -v
检查是否为新的版本号
![1d9fbb988a296c544f7fc4728fd0e4d8.png](https://i-blog.csdnimg.cn/blog_migrate/35a0d9919eaa53811a80ea6a59a546ea.jpeg)
........................................................
到这里还没结束,还需继续配置,不然用不了
20、find / -name "libstdc++.so*"
检查动态库
要最后一行的结果//最新动态库
/opt/tmp/gcc-6.4.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22
/opt/tmp/gcc-6.4.0/build是升级gcc时的输出目录,将上面的最新动态库libstdc++.so.6.0.22复制到/usr/lib64目录下。
21、cp /opt/tmp/gcc-6.4.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 /usr/lib64
一定不要忘记后面添加的/usr/lib64,复制后,修改系统默认动态库的指向,即:重建默认库的软连接。
22、cd /usr/lib64
切换工作目录至/usr/lib64
23、rm -rf libstdc++.so.6
将默认库的软连接指向最新动态库
24、ln -s libstdc++.so.6.0.22 libstdc++.so.6
默认动态库升级完成。
25、strings /usr/lib64/libstdc++.so.6 | grep GLIBC
重新运行检查动态库,即可。
至此,大功告成。
![1d4807b6ece8cb9e7fc74496c3135c69.png](https://i-blog.csdnimg.cn/blog_migrate/2252d2758fb0133bf06e3211a1b1047e.jpeg)