欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Centos 7 升级gcc

程序员文章站 2024-03-08 11:34:04
...

手动编译升级

  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 镜像地址