问题描述:编译成功后(在文件夹里有可执行文件),运行报错(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