现象

可能的原因

没有指定LD_LIBRARY_PATH

解决方法:
LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

复制动态库:sudo cp /usr/local/neurosoft/anaconda2/lib/libstdc++.so.6.0.24 /usr/lib/x86_64-linux-gnu/
改变软连接的指向
sudo rm libstdc++.so.6
sudo ln -s libstdc++.so.6.0.24 libstdc++.so.6
结束

作者:SunshineDrizzle
链接:https://www.jianshu.com/p/6be231fc2646
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

真的没有安装libgcc

安装libgcc:
我选择了usr/lib/i386-linux-gnu里面的libstdc++.so.6.0.25    也可以选择libstdc++.so.6.0.24

首先进入/home/qingdu/work_files/anaconda3/envs/tensorflow/lib,把里面的libstdc++.so.6删除,然后再把刚才找到的libstdc++.so.6.0.25粘贴到这个目录里面,在运行下面的命令,进行软链接

~/work_files/anaconda3/envs/tensorflow/lib$ ln -s libstdc++.so.6.0.24 libstdc++.so.6

现在import tensorflow就没问题了

/home/qingdu/work_files/anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/../../../../libstdc++.so.6就是等效于/home/qingdu/work_files/anaconda3/envs/tensorflow/lib/libstdc++.so.6      ../ 代表上一级目录
————————————————
版权声明:本文为CSDN博主「高飞007」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qingdu007/java/article/details/81515984

二进制和依赖的库版本不匹配

比如进程A,依赖一个动态加载的库libb.so, libb.so依赖新的libstdc.

这时候需要确保实际libb.so和A是基于同一个版本产生出来的二进制,否则也可能出现上面的问题。

参考

  • http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths

  • https://stackoverflow.com/questions/20357033/usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxxabi-1-3-8-not-found