CRF++安装,提示libstdc++.so.6: version `GLIBCXX 您所在的位置:网站首页 电脑程序指令cmd是什么意思 CRF++安装,提示libstdc++.so.6: version `GLIBCXX

CRF++安装,提示libstdc++.so.6: version `GLIBCXX

#CRF++安装,提示libstdc++.so.6: version `GLIBCXX| 来源: 网络整理| 查看: 265

安装CRF++, 

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

[email protected]:~/DLStudy$ tar -zxvf CRF++-0.58.tar.gz [email protected]:~/DLStudy$ cd CRF++-0.58/ [email protected]:~/DLStudy/CRF++-0.58$ ./configure [email protected]:~/DLStudy/CRF++-0.58$ make [email protected]:~/DLStudy/CRF++-0.58$ sudo make install

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

[email protected]:~/DLStudy/CRF++-0.57$ cd python/ [email protected]:~/DLStudy/CRF++-0.57/python$ python setup.py build [email protected]:~/DLStudy/CRF++-0.57/python$ sudo python setup.py install

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

[email protected]:~/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 "", line 1, in File "CRFPP.py", line 25, in _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存在的位置:

[email protected]:~$ 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.

[email protected]:~$ 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/中是否存在,

[email protected]:~$ 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. 重新做链接

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

 

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

[email protected]:~$ 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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有