我已经从源代码构建了opencv,并尝试在python中创建简单的程序,但是在终端中遇到此错误
line 3, in <module>
import cv2
ImportError: libjasper.so.1: cannot open shared object file: No such file or directory
此外,当尝试在C++中进行编译时,出现此错误
/usr/bin/ld: warning: libjasper.so.1, needed by
/usr/local/lib/libopencv_imgcodecs.so.3.1.0, not found (try using -
rpath or -rpath-link)
谁能帮我解决这个问题?
最佳答案
我也使用Arch Linux并面临相同的问题,它与opencv链接到lib的方式有关。
如果执行ls -lah /usr/lib | grep libjasper
,则应输出类似-rw-r--r-- 1 root root 569K nov 21 16:59 libjasper.alrwxrwxrwx 1 root root 18 nov 21 16:59 libjasper.so -> libjasper.so.4.0.0lrwxrwxrwx 1 root root 18 nov 21 16:59 libjasper.so.4 -> libjasper.so.4.0.0-rwxr-xr-x 1 root root 342K nov 21 16:59 libjasper.so.4.0.0
本身并没有错,安装了libjasper,问题与版本有关,由于某种原因,当opencv要求lib使用libjasper.so.x
版本时,它应该像libjasper.so
这样要求它,而后者又指向libjasper.so.4
,后者指向...等等。
我解决了创建指向lib的符号链接(symbolic link)的问题sudo ln -s /usr/lib/libjasper.so /usr/lib/libjasper.so.1
尽管这不是实现此目的的最佳方法(也许可以更好地手动编译libjasper),但它可能是最快的,并且有效。
您可以看到尝试再次运行脚本的结果。
关于python - Linux编译opencv python错误: ImportError: libjasper.so.1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41051431/