解决ImportError:lib***.so--cannot open shared object file: No such...(pycharm/clion报错但shell不报错)

问题描述:编译成功后(在文件夹里有可执行文件),运行报错(Ubuntu)Clion报错无法找到.so共享库(但shell可正常执行)解决办法(pycharm出现类似报错同理)

/home/luoxinhao/Desktop/mywork/bin/Infantry: error while loading shared libraries: libopencv_features2d.so.4.5: cannot open shared object file: No such file or directory

原因:clion的执行可能和我们shell的环境变量不同,以下是解决办法

方法1:每次启动Clion时不用鼠标启动,用终端,进入clion所在文件夹,输入./clion.sh,则可正常执行。(可行但是麻烦)

方法2:软链接方式(shell报错和IDLE报错都可行,但是可能需要链接很多个库,必须一个一个链接)

我的clion是用这种方法修改成功的,但是pycharm链接了七八个都没链完就放弃了

    1.1 找到文件

            find  /  -name  “lib**.so”   (缺失的动态链接库)  

    1.2 建立软链接

            ln -s  /path/to/lib**.so   /usr/lib

     1.3 sudo ldconfig

方法3:修改LD_LIBRARY_PATH(对我来说只能解决shell报错,修改后IDLE仍然报错,而且有一台电脑该方法不好使)

sudo gedit ~/.bashrc

export LD_LIBRARY_PATH=/where/you/install/lib:$LD_LIBRARY_PATH

sudo source ~/.bashrc

方法4:修改/etc/ld.so.conf(同上)

vim  /etc/ld.so.conf

add  /where/you/install/lib

sudo ldconfig

方法5:添加至环境变量(可用,用于解决IDLE报错)

首先打开pycharm,修改右上角运行配置的环境变量

如果已经有环境变量,在后面打一个分号再粘贴。

粘贴内容类似与方法3

比如方法3内容如下

export LD_LIBRARY_PATH="/opt/intel/openvino_2021.4.689/opencv/lib:$LD_LIBRARY_PATH"

则在分号后面加上

LD_LIBRARY_PATH=/opt/intel/openvino_2021.4.689/opencv/lib

(2-4条)参考文献:解决ImportError:lib***.so--cannot open shared object file: No such file or directory_hhhuua的博客-CSDN博客

你可能感兴趣的:(ubuntu,linux,运维)