Ubuntu安装dlib后import出现libstdc++.so.6: version `GLIBCXX_3.4.21' not found

1 问题描述

先安装依赖包cmake,libboost,再安装dlib

sudo apt-get install cmake

sudo apt-get install libboost-python-dev

sudo pip install dlib

安装后import dlib的时候报错

ImportError: /home/liaohuqiang/anaconda2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0)

2 原因

升级gcc时,动态库没有替换旧版本gcc的动态库

3 解决方法

(1)找到gcc升级时的生成的相应动态库

sudo find / -name "libstdc++.so.6*"

# 某一行:
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21

(2)复制到需要的地方,根据报错信息,把该动态库要放到/home/liaohuqiang/anaconda2/lib下

cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/liaohuqiang/anaconda2/lib

(3)建立新的软链接

rm -rf libstdc++.so.6

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

(4)查看动态库,发现已更新到需要的版本

strings /home/liaohuqiang/anaconda2/lib/libstdc++.so.6.0.21|grep GLIBCXX

4 推广问题

其它类似出现的问题也可以用这样的方法解决,比如安装opencv后出现的import错误

ImportError: /home/liaohuqiang/anaconda2/bin/../lib/libgomp.so.1: version `GOMP_4.0' not found (required by /usr/lib/x86_64-linux-gnu/libsoxr.so.0)
原文地址:https://www.cnblogs.com/liaohuiqiang/p/8297389.html