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)