CentOS 6.6 升级GCC v7.5.0 (完整)
0.为什么是GCC7.5
CentOS7 自带的 gcc/g++ 版本是 4.8,如果没有安装,可以通过 yum 命令安装。
由于 gcc/g++ 4.8 完全支持 C++ 11,支持部分 C++ 14,不支持 C++ 17,而完全支持 C++ 17 的是 g++ 7 及以上版本:
个人不太建议安装GCC8.X,太新的编译器,所需要的依赖包、各种环境都需要最新版本,安装过程中会出现很多问题。而且还不一定那么稳定。
本着够用就好的原则,GCC7.5完全支持C++17,是最理想的选择。
1.下载源码,解压
经测试,这个 https://ftp.gnu.org/ 地址还是很快的,而且是完整的,不想有些地方下载的是有缺文件的!!!!
wget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.xz tar -zxf gcc-7.5.0.tar.xz
2.下载依赖
我们可以直接用自带的脚本完成
cd gcc-7.5.0
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
3.编译安装
编译比较耗时,我用了七八十分钟;双核cpu, 所以 make 参数 `-j2` :
mkdir gcc-build-7.5.0 cd gcc-build-7.5.0 make -j2 && make install && date
4.更新动态库
这个,我编译安装后,好像 不用更新,添加PATH路径 /usr/local/lib64 就可以了。
[root@wsvr cmake-build]# ll /usr/local/lib64/libstdc++.so* lrwxrwxrwx 1 root root 19 12月 17 13:10 /usr/local/lib64/libstdc++.so -> libstdc++.so.6.0.24 lrwxrwxrwx 1 root root 19 12月 17 13:10 /usr/local/lib64/libstdc++.so.6 -> libstdc++.so.6.0.24 -rwxr-xr-x 1 root root 11587712 12月 17 13:10 /usr/local/lib64/libstdc++.so.6.0.24 -rw-r--r-- 1 root root 2397 12月 17 13:10 /usr/local/lib64/libstdc++.so.6.0.24-gdb.py [root@wsvr cmake-build]# ll /usr/lib64/libstdc++.so* lrwxrwxrwx 1 root root 19 12月 16 19:36 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19 -rwxr-xr-x 1 root root 995840 9月 30 10:17 /usr/lib64/libstdc++.so.6.0.19
如果程序运行报错,检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
从输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。
执行以下命令,查找编译gcc时生成的最新动态库:(在root权限下进行操作,后面都是,不再赘述)
find / -xdev -name "libstdc++.so*"
复制库到 /usr/lib64
cp /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64
删掉旧的libstdc++.so.6(这是一个软链接),创建新的libstdc++.so.6软链接
rm -rf /usr/lib64/libstdc++.so.6 ln -s /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6
5.更多参考
https://www.cnblogs.com/lzpong/p/5755678.html
https://www.cnblogs.com/FengGeBlog/p/12994103.html
https://www.cnblogs.com/music-liang/p/12900457.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满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2018-12-18 std::mutex 引起的 C2280 尝试引用已删除的函数