zoukankan      html  css  js  c++  java
  • linux系统下的缺失 libstdc++.so.6: version’GLIBCXX_3.4.20’的问题:

    在linux下遇到了一个这样的问题,使用anaconda时,它的安装库里的文件被提示:缺失 libstdc++.so.6: version’GLIBCXX_3.4.20’。后来经过查看资料知道了原来是由于 libstdc++.so.6的版本过低造成的;再重新找一个高版本的就可以了;由于GCC的版本其实很高的,所以呢,我认为我的电脑的其它文件的库文件里应该有比这版本高的;所以,在自己的电脑里找找;

    问题解决:

    1. 先观察anaconda 文件夹下的库里面的libstdc++.so.6是什么?

    yinheyi@yinheyi-Aspire-V5-471G:~/anaconda1/lib$ ls -l | grep libstdc++.so.6
    lrwxrwxrwx  1 yinheyi yinheyi       19 7月  27 15:48 libstdc++.so -> libstdc++.so.6.0.19
    lrwxrwxrwx  1 yinheyi yinheyi       19 7月  27 23:12 libstdc++.so.6 -> libstdc++.so.6.0.19
    -rwxr-xr-x  2 yinheyi yinheyi  1055192 9月  19  2015 libstdc++.so.6.0.19

    看出:libstdc++.so.6是一个软链接,它链接到了实际的动态库文件:libstdc++.so.6.0.19;

    2.再来看看libstdc++.so.6.0.19里有什么样的版本的GLIBCXX?运行如下命令得到:

    yinheyi@yinheyi-Aspire-V5-471G:~/anaconda1/lib$ strings libstdc++.so | grep GLIBCXX
    
    GLIBCXX_3.4
    GLIBCXX_3.4.1
    GLIBCXX_3.4.2
    GLIBCXX_3.4.3
    GLIBCXX_3.4.4
    GLIBCXX_3.4.5
    GLIBCXX_3.4.6
    GLIBCXX_3.4.7
    GLIBCXX_3.4.8
    GLIBCXX_3.4.9
    GLIBCXX_3.4.10
    GLIBCXX_3.4.11
    GLIBCXX_3.4.12
    GLIBCXX_3.4.13
    GLIBCXX_3.4.14
    GLIBCXX_3.4.15
    GLIBCXX_3.4.16
    GLIBCXX_3.4.17
    GLIBCXX_3.4.18
    GLIBCXX_3.4.19
    GLIBCXX_FORCE_NEW
    GLIBCXX_DEBUG_MESSAGE_LENGTH

    里面确实没有version’GLIBCXX_3.4.20’,所以呢,需要找一个新的啊;

    3.找一个更高版本的libstdc++.so.6:  使用locate命令来查查本地有没有:

    yinheyi@yinheyi-Aspire-V5-471G:~/anaconda1/lib$ locate libstdc++.so.6
    /home/yinheyi/anaconda1/lib/libstdc++.so.6
    /home/yinheyi/anaconda1/lib/libstdc++.so.6.0.19
    /home/yinheyi/anaconda1/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6
    /home/yinheyi/anaconda1/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6.0.19
    /usr/lib/libstdc++.so.6
    /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
    /usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20-gdb.py

    在文件夹 /usr/lib/x86_64-linux-gnu/里确实有一个: libstdc++.so.6.0.20。 查看它里面的GLIBCXX,发现正是我们需要的:

    yinheyi@yinheyi-Aspire-V5-471G:~/anaconda1/lib$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 | grep GLIBCXX
    GLIBCXX_3.4
    GLIBCXX_3.4.1
    GLIBCXX_3.4.2
    GLIBCXX_3.4.3
    GLIBCXX_3.4.4
    GLIBCXX_3.4.5
    GLIBCXX_3.4.6
    GLIBCXX_3.4.7
    GLIBCXX_3.4.8
    GLIBCXX_3.4.9
    GLIBCXX_3.4.10
    GLIBCXX_3.4.11
    GLIBCXX_3.4.12
    GLIBCXX_3.4.13
    GLIBCXX_3.4.14
    GLIBCXX_3.4.15
    GLIBCXX_3.4.16
    GLIBCXX_3.4.17
    GLIBCXX_3.4.18
    GLIBCXX_3.4.19
    GLIBCXX_3.4.20
    GLIBCXX_DEBUG_MESSAGE_LENGTH

    4. 最后实施:

    首先把libstdc++.so.6.0.20 复制到 anaconda 的库文件夹下,然后删除原来的软链接 libstdc++.so.6,建立新的指向libstdc++.so.6.0.20的软链接;

    原来的libstdc++.so.6,如下:

    lrwxrwxrwx  1 yinheyi yinheyi       19 7月  27 23:12 libstdc++.so.6 -> libstdc++.so.6.0.19

    假设已经删除掉了原来的libstdc++.so.6,现在建立新的指向libstdc++.so.6.0.20的软链接:

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

    再来看看现在的新的libstdc++.so.6,如下:

    lrwxrwxrwx  1 yinheyi yinheyi       19 7月  27 24:12 libstdc++.so.6 -> libstdc++.so.6.0.20

    解决;

  • 相关阅读:
    网络-基础知识
    手机开发-安卓手机的更新换代
    C-基础
    手机开发-IOS
    前端- html 和css
    jmeter接口测试-文件下载
    JDBC接口
    jmeter接口测试实例7-关联
    jmeter接口测试实例6-注册(参数化)
    jmeter接口测试实例5-文件上传
  • 原文地址:https://www.cnblogs.com/yinheyi/p/7248307.html
Copyright © 2011-2022 走看看