Linux下cannot open shared object file解决

Linux下cannot open shared object file解决

问题描述

跑程序时,显示错误如下:

ImportError: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory

原因:这里的libmkl_intel_lp64.so是一个动态链接库文件,系统找不到。

解决方案

修改动态库搜索路径的方式

  1. 搜索该文件所在路径:

    # 在/opt/conda路径下查找对应文件,一般就在安装的conda路径下
    find /opt/conda -name libmkl_intel_lp64.so
    

    假如find找到了 /opt/conda/lib/libmkl_intel_lp64.so

  2. 将所在的路径加入动态库搜索路径

    export LD_LIBRARY_PATH=/opt/conda/lib:$LD_LIBRARY_PATH
    
  3. 更新环境变量文件

    source ~/.bashrc
    

补充一点如果是用miniconda安装python的话,对应的动态链接一般会在虚拟环境的folder里,但不知为何python3.9.6的环境里会没有这个动态链接,需要通过find找一下。

修改文件的方式

有时候该文件所在目录确实已经在动态库搜索路径里了,但是实际的文件名往往和程序所想要的文件名差一点(最后的版本号),此时只需要复制出一份新的文件即可:

cp libmkl_intel_lp64.so.1 libmkl_intel_lp64.so
posted @ 2024-03-05 22:07  3的4次方  阅读(774)  评论(0编辑  收藏  举报