• 更改libstdc++版本流程


    在运行程序时报错:

    1. /lib/libstdc++.so.6: version `CXXABI_1.3.11' not found
    2. /lib/libstdc++.so.6: version `GLIBCXX_3.4.26' not found
    1. 查找原因

      未找到 CXXABI_1.3.11 和 GLIBCXX_3.4.26 , 首先查看一下都有哪些版本的 GLIBCXX 和 CXXABI :

      使用命令查找GLIBCXX:

      strings /lib/libstdc++.so.6 | grep GLIBCXX

      输出:

      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. GLIBCXX_3.4.21
      23. GLIBCXX_3.4.22
      24. GLIBC_2.17
      25. GLIBC_2.18

      使用命令查找CXXABI:

      strings /lib/libstdc++.so.6 | grep CXXABI

      输出:

      1. CXXABI_1.3
      2. CXXABI_1.3.1
      3. CXXABI_1.3.2
      4. CXXABI_1.3.3
      5. CXXABI_1.3.4
      6. CXXABI_1.3.5
      7. CXXABI_1.3.6
      8. CXXABI_1.3.7
      9. CXXABI_1.3.8
      10. CXXABI_1.3.9
      11. CXXABI_1.3.10
      12. CXXABI_TM_1
      13. CXXABI_1.3
      14. CXXABI_1.3.2
      15. CXXABI_1.3.6
      16. CXXABI_1.3.9
      17. CXXABI_1.3.1
      18. CXXABI_1.3.5
      19. CXXABI_1.3.8
      20. CXXABI_1.3.4
      21. CXXABI_TM_1
      22. CXXABI_1.3.7
      23. CXXABI_1.3.10
      24. CXXABI_1.3.3

      查看后确实没有CXXABI_1.3.11和GLIBCXX_3.4.26

      在/lib目录下使用命令查看libstdc++.so.6的软链接:(\为连接符)

      ls -l | grep libstdc\+\+.so.6

      输出:

      1. lrwxrwxrwx 1 root root 19 Jun 7 16:32 libstdc++.so.6 -> libstdc++.so.6.0.22
      2. -rwxrwxr-x 1 root root 1947272 Mar 16 21:04 libstdc++.so.6.0.22
      3. -rw-rw-r-- 1 root root 2512 Mar 16 21:04 libstdc++.so.6.0.22-gdb.py

      发现libstdc++.so.6的软链接是指向libstdc++.so.6.0.22的,相当于系统中设置了libstdc++.so.6的快捷方式为6.0.22版本的libstdc++, 所以就需要将此版本置换为至少6.0.26以上的版本.

    2. 解决问题

      先将libstdc++.so.6.0.28放到/lib下
      (可以使用此链接下载:
      http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
      我个人使用的是arm版的6.0.28版本,版本选择看个人需要
      )

      在lib目录下先删除libstdc++.so.6.0.22的软链接:

      rm libstdc++.so.6
      

      再创建libstdc++.so.6.0.28的软链接:

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

      令libstdc++.so.6指向libstdc++.so.6.0.28.

      此时再查看libstdc++的版本:

      strings /lib/libstdc++.so.6 | grep GLIBCXX
      

      输出:

      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. GLIBCXX_3.4.21
      23. GLIBCXX_3.4.22
      24. GLIBCXX_3.4.23
      25. GLIBCXX_3.4.24
      26. GLIBCXX_3.4.25
      27. GLIBCXX_3.4.26
      28. GLIBCXX_3.4.27
      29. GLIBCXX_3.4.28
      strings /lib/libstdc++.so.6 | grep CXXABI
      

      输出:

      1. CXXABI_1.3
      2. CXXABI_1.3.1
      3. CXXABI_1.3.2
      4. CXXABI_1.3.3
      5. CXXABI_1.3.4
      6. CXXABI_1.3.5
      7. CXXABI_1.3.6
      8. CXXABI_1.3.7
      9. CXXABI_1.3.8
      10. CXXABI_1.3.9
      11. CXXABI_1.3.10
      12. CXXABI_1.3.11
      13. CXXABI_1.3.12
      14. CXXABI_TM_1
       

      而以下两个版本都已存在:

      1. `CXXABI_1.3.11'
      2. `GLIBCXX_3.4.26'

      此时再运行程序已经可以正常运行了.

  • 相关阅读:
    甘露糖-顺铂mannose-cisplatin|甘露糖-聚乙二醇-顺铂cisplatin-PEG-mannose
    excel打开csv中文乱码
    IOS开发之免费证书+不越狱真机调试
    电脑数据恢复怎么操作?电脑数据恢复难点是什么
    全国职业技能大赛云计算赛项---Linux系统调优案例
    前端开发调试技巧:如何在Component下选中当前插件并且查看当前插件信息
    Linux SSH命令实战教程,提升你的服务器管理基本功!
    zabbix配置钉钉告警、和故障自愈
    一种能让大型数据聚类快2000倍的方法,真不戳
    SQLyog错误号码
  • 原文地址:https://blog.csdn.net/mjj1024/article/details/126020053