本人Linux小白一枚,因为学习需要不得已摸索相关技能,由于无大师指点,走了很多弯路,在网上找了一些教程,但是因为缺乏基本知识无法理解其中的含义而无法达到活学活用,最终都没能成功实现。出现转机的是在某个群组里问了一个专业人士指点迷津,最终才恍然大悟,成功地打通了这个方法。




centos 7 升级GCC centos7.6升级gcc_libstdc++


本着无私分享的角度,我把亲测可用的方法贴文给大家,为小白们指明一条道路,这样达到事半功倍。其中现在看来方法也比较简单(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

查看安装的版本号,此时还是显示显示旧版


centos 7 升级GCC centos7.6升级gcc_libstdc++_02


........................................................

继续操作

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

检查是否为新的版本号


centos 7 升级GCC centos7.6升级gcc_make后gcc出现不全_03


........................................................

到这里还没结束,还需继续配置,不然用不了

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

重新运行检查动态库,即可。

至此,大功告成。


centos 7 升级GCC centos7.6升级gcc_版本号_04