提出问题
在安装protobuf、google等包时出现后续的“ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found”错误。分析原因,大概因为安装的库版本比较高,生成的动态库没有替换老版本的动态库,GLIBCXX中的版本比较低。
解决方案
利用软连接搭建动态库版本更新。具体实现如下所示:
#按路径查找GLIBCXX_3.4.29是否真的不存在
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.29
#查找所有libstdc++.so库的信息,找到最新版本,如下图所示
find / -name "libstdc++.so*"
#删除当前库/usr/lib...路径下不存在的libstdc++.so.6
rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#复制最新版本libstdc++.so.6.0.29库到/usr/lib...路径下
cp /root/anaconda3/envs/few-shot/lib/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu
#建立软连接
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#再次查找GLIBCXX_3.4.29是否存在,发现已存在
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.29
文章评论