Linux下GLIBCXX和GLIBC版本低造成的编译错误的解决方案

本文介绍了如何通过更新libstdc++.so.6版本解决GLIBCXX版本过低导致的编译错误。包括检查当前GLIBCXX版本、查找并安装新版本libstdc++库、更新系统软链接等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 我们着手解决GLIBCXX的问题,C++库,首先查看错误信息提示中的lib文件的信息。

 

[plain]  view plain  copy
  1. $ strings /usr/lib64/libstdc++.so.6 | grep GLIBC  

这里是打印 libstdc++.so.6的输出信息中限定(grep) GLIBC库的信息

[plain]  view plain  copy
  1. GLIBCXX_3.4  
  2. GLIBCXX_3.4.1  
  3. GLIBCXX_3.4.2  
  4. GLIBCXX_3.4.3  
  5. GLIBCXX_3.4.4  
  6. GLIBCXX_3.4.5  
  7. GLIBCXX_3.4.6  
  8. GLIBCXX_3.4.7  
  9. GLIBCXX_3.4.8  
  10. GLIBCXX_3.4.9  
  11. GLIBCXX_3.4.10  
  12. GLIBCXX_3.4.11  
  13. GLIBCXX_3.4.12  
  14. GLIBCXX_3.4.13  
  15. GLIBC_2.3  
  16. GLIBC_2.2.5  
  17. GLIBC_2.3.2  
  18. GLIBCXX_FORCE_NEW  
  19. GLIBCXX_DEBUG_MESSAGE_LENGTH  

[html]  view plain  copy
  1. $ll  /usr/lib64/libstdc++.so.6  
[plain]  view plain  copy
  1. lrwxrwxrwx 1 root root 30 Sep 23 06:21 /usr/lib64/libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.13  

也就是系统以前有一个6.0.13版本,确实比较旧了,那么我们有新版本么?我们安装了gcc 4.9.1,按理说应该已经装了新版的libstdC++.,如果没有,可以去网上下一个。

先在本机找:

[html]  view plain  copy
  1. find / -name libstdc++.so.6*  


我们发现,gcc安装时把/libstdc++.so.6.0.20 安装到了/usr/local/lib64下,但并没有改变libstdc++.so.6的链接指向。

那么我们手动来更新软连接(也可以字节指向/usr/local下的文件,不用拷贝, 看鸽子的文件管理习惯)

[plain]  view plain  copy
  1. $ cp /usr/local/lib64/libstdc++.so.6.0.20 /usr/lib64   
  2. $ rm -rf /usr/lib64/libstdc++.so.6  
  3. $ ln -s /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6  
  4. $ strings /usr/lib64/libstdc++.so.6 | grep GLIBC  

然后结果:

[plain]  view plain  copy
  1. GLIBCXX_3.4  
  2. GLIBCXX_3.4.1  
  3. GLIBCXX_3.4.2  
  4. GLIBCXX_3.4.3  
  5. GLIBCXX_3.4.4  
  6. GLIBCXX_3.4.5  
  7. GLIBCXX_3.4.6  
  8. GLIBCXX_3.4.7  
  9. GLIBCXX_3.4.8  
  10. GLIBCXX_3.4.9  
  11. GLIBCXX_3.4.10  
  12. GLIBCXX_3.4.11  
  13. GLIBCXX_3.4.12  
  14. GLIBCXX_3.4.13  
  15. GLIBCXX_3.4.14  
  16. GLIBCXX_3.4.15  
  17. GLIBCXX_3.4.16  
  18. GLIBCXX_3.4.17  
  19. GLIBCXX_3.4.18  
  20. GLIBCXX_3.4.19  
  21. GLIBCXX_3.4.20  
  22. GLIBC_2.3  
  23. GLIBC_2.2.5  
  24. GLIBC_2.3.2  
  25. GLIBCXX_FORCE_NEW  
  26. GLIBCXX_DEBUG_MESSAGE_LENGTH  

库更新完毕。我们已经支持到了GLIBCXX_3.4.20

此时再进行编译,GLIBCXX的问题是没有了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值