zoukankan      html  css  js  c++  java
  • CRF++安装,提示libstdc++.so.6: version `GLIBCXX_3.4.20' not found解决

    安装CRF++, 

    到CRF++网站CRF++: Yet Another CRF toolkit下载C++源代码安装包(这里用的是 CRF++-0.58.tar.gz ),解压,进入解压文件并如下过程安装

    hd@hd:~/DLStudy$ tar -zxvf CRF++-0.58.tar.gz
    hd@hd:~/DLStudy$ cd CRF++-0.58/
    hd@hd:~/DLStudy/CRF++-0.58$ ./configure
    hd@hd:~/DLStudy/CRF++-0.58$ make
    hd@hd:~/DLStudy/CRF++-0.58$ sudo make install
    

    在当前文件夹下cd python进入安装python包

    hd@hd:~/DLStudy/CRF++-0.57$ cd python/
    hd@hd:~/DLStudy/CRF++-0.57/python$ python setup.py build
    hd@hd:~/DLStudy/CRF++-0.57/python$ sudo python setup.py install
    

    此时,当我们在Python环境下调用CRFPP时,出现如下错误

    hd@hd:~/DLStudy/CRF++-0.57/python$ sudo python
    Python 2.7.12 (default, Nov 19 2016, 06:48:10)
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import CRFPP
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "CRFPP.py", line 25, in <module>
        _CRFPP = swig_import_helper()
      File "CRFPP.py", line 17, in swig_import_helper
        import _CRFPP
    ImportError: /home/hd/anaconda2/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/libcrfpp.so.0)
    >>>
    

    提示"anaconda2/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found"

    解决方法:

    1. 首先查找libstdc++.so.6存在的位置:

    hd@hd:~$ sudo find / -name libstdc++.so.6*
    /home/hd/anaconda2/lib/libstdc++.so.6.0.19
    /home/hd/anaconda2/lib/libstdc++.so.6
    /home/hd/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6.0.19
    /home/hd/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6
    find: ‘/run/user/1000/gvfs’: Permission denied
    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
    /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    /usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
    

    这说明在多个文件夹都存在。

    分别检查每个路径下是否存在GLIBCXX_3.4.20.

    hd@hd:~$ strings /home/hd/anaconda2/lib/libstdc++.so.6 | 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_DEBUG_MESSAGE_LENGTH
    

    可以发现,其中没有GLIBCXX_3.4.20,这就是为什么前面提示出错的原因

    那么在检查/usr/lib/x86_64-linux-gnu/中是否存在,

    hd@hd:~$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | 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_3.4.21
    GLIBCXX_DEBUG_MESSAGE_LENGTH
    

     可以发现其中存在GLIBCXX_3.4.20

    3. 重新做链接

    hd@hd:~$ sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/hd/anaconda2/lib/
    hd@hd:~$ sudo rm -rf /home/hd/anaconda2/lib/libstdc++.so.6 hd@hd:~$ sudo ln -s /home/hd/anaconda2/lib/libstdc++.so.6.0.21 /home/hd/anaconda2/lib/libstdc++.so.6

     

    4.检查问题是否解决,看是否可以import CRFPP:

    hd@hd:~$ sudo python
    Python 2.7.12 (default, Nov 19 2016, 06:48:10)
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import CRFPP
    >>>

    此时不在有错误提示。问题解决

    更多参考:

    关于libstdc++.so.6: version `GLIBCXX_3.4.20' not found问题解决

    CRF++ 实现中文分词

    中文分词入门之字标注法4

  • 相关阅读:
    layui动态修改select的选中项
    layui 鼠标悬停单元格显示全部
    使用LayUI操作数据表格
    layer.msg 弹出不同的效果的样式
    layer父页面刷新
    layui 获取radio单选框选中的值
    使用Dapper.Contrib
    微信公众号的文章爬取有三种方式
    centos的 各种安装包下载位置
    git pull一直弹出vim编辑器
  • 原文地址:https://www.cnblogs.com/huadongw/p/7224052.html
Copyright © 2011-2022 走看看