2016-12-09 4 views
1

私はソースからOpenCVのを構築している、とPythonで簡単なプログラムを作成し、それに加えて、端末LinuxはOpenCVのPythonのエラーコンパイル:はImportError:libjasper.so.1

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) 

誰でもこの問題を解決できますか?

+0

UbuntuとCentOSでは、これをパッケージ(例えば、Ubuntuのlibjasper-dev)でインストールできるはずです。どのOSでこれを試していますか? –

+0

私はarch linuxを使っています – opera97

+0

Archのlibjasperの[version](https://www.archlinux.org/packages/extra/x86_64/jasper/)が動作するはずです。あなたは偶然ソースからlibjasperをビルドしましたか?その場合は、LD_LIBRARY_PATHにlibjasper.so.1の場所を追加するだけです。代わりに、OpenCVをビルドするときにソースからジャスパーをビルドすることもできます(BUILD_JASPERオプション)、静的にリンクされます。 –

答えて

0

私もArch Linuxを使用していて、同じ問題に直面しています。これはopencvがlibにリンクする方法に関連しています。

あなたはそれが出力自体が間違っていない

-rw-r--r-- 1 root root 569K nov 21 16:59 libjasper.a lrwxrwxrwx 1 root root 18 nov 21 16:59 libjasper.so -> libjasper.so.4.0.0 lrwxrwxrwx 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がls -lah /usr/lib | grep libjasperインストールされている必要があるならば、問題はOpenCVのは、を要求したときに、何らかの理由で、バージョンに関係していますlibにはバージョンlibjasper.so.xがありますが、それはlibjasper.soのように尋ねる必要があります。これはlibjasper.so.4を指しています。

私がこのための最良の方法(手でおそらくより良いコンパイルlibjasper)ではありませんが、それはおそらく最速であり、それが動作するのlib sudo ln -s /usr/lib/libjasper.so /usr/lib/libjasper.so.1

へのシンボリックリンクを作成し、問題を解決しました。

スクリプトをもう一度実行しようとすると、結果が表示されます。

関連する問題