本人Linux小白一枚,因为学习需要不得已摸索相关技能,由于无大师指点,走了很多弯路,在网上找了一些教程,但是因为缺乏基本知识无法理解其中的含义而无法达到活学活用,最终都没能成功实现。出现转机的是在某个群组里问了一个专业人士指点迷津,最终才恍然大悟,成功地打通了这个方法。
本着无私分享的角度,我把亲测可用的方法贴文给大家,为小白们指明一条道路,这样达到事半功倍。其中现在看来方法也比较简单(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
查看安装的版本号,此时还是显示显示旧版
........................................................
继续操作
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
检查是否为新的版本号
........................................................
到这里还没结束,还需继续配置,不然用不了
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
重新运行检查动态库,即可。
至此,大功告成。