centos更新gcc
编译遇到了这么个错误
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/bin:$PATH
#重启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
```
本文来自博客园,作者:荧惑微光,转载请注明原文链接:https://www.cnblogs.com/yinghuoweiguang/p/15700418.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具