Centos 7 升级gcc

作者: YuWenHaiBo | 来源:发表于2018-01-18 15:04 被阅读4435次

手动编译升级

  1. 获取安装包并解压
地址是:
http://ftp.gnu.org/gnu/gcc/
https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.2.0/(国内)
解压缩
tar -jxvf gcc-7.2.0.tar.bz2
或则
tar -zxvf gcc-7.2.0.tar.gz
这两个版本选择下载时的版本进行不同的解压操作

2.下载供编译需求的依赖项

cd gcc-7.2.0
./contrib/download_prerequisites 
如果不成功可以手动下载依赖
yum install gmp-devel                              // 編譯依賴此庫  
yum install mpfr-devel                             // 編譯依賴此庫  
yum install libmpc-devel                         // 編譯依賴此庫  
当然以上库可以在ftp://gcc.gnu.org/pub/gcc/infrastructure/下载
下载isl-0.18.tar.bz2                                  // yum 没有这个库源码安装
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
tar -jxvf isl-0.18.tar.bz2
cd isl-0.18 
./configure   
make  
make install   
  1. 建立一个目录供编译出的文件存放
mkdir gcc-build-7.2.0
cd gcc-build-7.2.0

4.编译安装

yum groupinstall "Development Tools"
yum install glibc-static libstdc++-static(这两个是必要的开发环境)
../configure --prefix=/usr/local/gcc7 --enable-languages=c,c++,go  --disable-multilib // 指定gcc7安裝地址,指定所需安裝語言,不支持32位  
make -j4 (-j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]。建议不要使用make -j来编译,虽然可以缩短编译时间,但极大可能会编译失败)
make install((安装需要root权限!))
  1. 重启,然后查看gcc版本
    gcc -v

6.升级gcc,生成的动态库没有替换老版本gcc的动态库
源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。

6.1 运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
从输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。

6.2 执行以下命令,查找编译gcc时生成的最新动态库:
find / -name "libstdc++.so*"
将上面的最新动态库libstdc++.so.6.0.22复制到/usr/lib64目录下

cd /usr/lib64
cp /root/Downloads/gcc-6.1.0/gcc-build-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 ./

6.3 删除原来软连接:
rm -rf libstdc++.so.6
6.4 将默认库的软连接指向最新动态库:
ln -s libstdc++.so.6.0.22 libstdc++.so.6
6.5 默认动态库升级完成。重新运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
可以看到 输出有"GLIBCXX_3.4.21"
原文链接:
CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
Centos7升级gcc学习笔记

利用yum 升级(目前能升级到7.3)

 yum install centos-release-scl -y
yum install devtoolset-7 -y
scl enable devtoolset-7 bash
gcc --version
注释:
在centos的devtoolset库中 最新的为 devtoolset-7,所以我们以后可以自己改数字安装最新的版本
scl enable devtoolset-7 bash 如果使用的是zsh则使用
scl enable devtoolset-7 zsh
如果不知道什么是zsh那么默认的就好了

附上:centos 镜像地址

相关文章

  • CentOS 7 升级gcc/g++编译器

    CentOS 7 升级gcc/g++编译器参考链接:CentOS 7 升级gcc/g++编译器[https://b...

  • CentOS7升级gcc新版本

    CentOS7编译和安装GCC7.5 CentOS7.5升级gcc到8.3.0版本 Linux系统gcc升级到gc...

  • CentOS 6/7 升级GCC/G++至5.x版本

    CentOS 6/7 升级GCC/G++至5.x版本 ubuntu 14.04 升级GCC/G++至5.x版本

  • 黑猴子的家:Centos 7.x 安装百度网盘baidunetd

    1、升级 gcc 版本到 > 4.9.0 之前有一篇博文,内容就是centos 7.x gcc 4.8.5 升级到...

  • Centos 7 升级gcc

    手动编译升级 获取安装包并解压 2.下载供编译需求的依赖项 建立一个目录供编译出的文件存放 4.编译安装 重启,然...

  • centos安装c++17

    [转]CentOS7中升级gcc - 简书 (jianshu.com)[https://www.jianshu.c...

  • CentOS7-gcc升级

    升级GCC前确保系统中有旧版本的gcc和gcc-c++可以使用gcc -v和g++ -v查看是否有相应的版本如果缺...

  • Centos7 升级GCC

    Centos 7系统自带的gcc版本太低,需要升级一下。网上搜索的方法很多都是直接编译源码,但是编译源码太费劲。整...

  • CentOS7 升级 gcc

    使用 scl 软件集升级, 简单方便, 无需编译。 Centos7升级gcc版本方法之一使用scl软件集 devt...

  • centos7 升级gcc

    升级到gcc7以上可以参考这个:https://www.cnblogs.com/jixiaohua/p/11732...

网友评论

    本文标题:Centos 7 升级gcc

    本文链接:https://www.haomeiwen.com/subject/hcchmxtx.html