查看: 30|回覆: 0

centos更新gcc

[複製鏈接]

1

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-11-3
發表於 2021-12-16 23:10:00 | 顯示全部樓層 |閲讀模式

编译遇到了这么个错误
A compiler with support for C++17 language features is required.
gcc的版本太低了,centos默认的是4.8.0我记得
tm官方就不知道更新一下子源么

1 下载

哪里下都行吧,官网
官网里面没逛明白,我是直接找了篇帖子就用了

wget ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-8.3.0/gcc-8.3.0.tar.gz
tar -zxvf gcc-8.3.0.tar.gz
cd gcc-8.3.0

2 安装依赖

我看有些帖子是在configure报错:configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
后直接下载这三个东东,然后编译安装
但是其实可以直接用他里面写好的脚本安装

./contrib/download_prerequisites

3 编译安装

./configure --prefix=/usr/local/gcc-8.3.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib
make && make install

安装完成了
查看版本
gcc --version # 此时应该还是旧的,但是我在这里已经显示8.3了,后面环境变量就先不设置了
有些帖子说可以删掉就的gcc
yum remove gcc
然后在添加环境变量啥的,我这里没删

添加环境变量

vim /etc/profile
#添加:
PATH=/usr/local/binPATH

#重启profile
source /etc/profile

4 更新标准库

这里应该不需要再做,因为我编译时没有指定输出目录,所以都是默认的。
查看了/usr/local/lib64下面的链接都是新的
但是还是做一下记录如何更新标准库

进入lib

cd xxx/gcc-8.3.0
cd lib64

查看当前库的版本:ls,看到:libstdc++.so.6.0.25
复制到系统lib下

cp libstdc++.so.6.0.25 /usr/lib64/ 
cd /usr/lib64
ls -l | grep libstdc++

删除旧的软连接

rm -f libstdc++.so.6

建立新的软连接:

ln -s libstdc++.so.6.0.25 libstdc++.so.6

查看标准库:

		strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
```
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部