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

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的问题是没有了。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页