2012-04-24 3 views
0

私はOpenCV Linux版でcmakeを実行し、必要な共有オブジェクト(ライブラリ)をすべて作成しました。 自分のシステムでJNIを使​​っているJavaから、それらのライブラリを使ってサンプルOpenCVプログラムを呼び出すことさえできました。それは走っていた。Hadoopの不確かなUnsatisfiedLinkError

UnsatisfiedLinkError:/path/to/libhighgui.so.2.0: libjpeg.so.62: cannot 
open shared object file: No such file or directory 

興味深いことに、OpenCVの上でCMakeのは、このlibjpeg.soを作成していない:私は

System.load("path/to/libhighgui.so.2.0"); 

を使用してHadoopのマッパーでlibhighgui.so.2.0ロードしようとすると、 は、しかし、私はエラーを取得します。

あなたが持っているヘルプ/解決策はありますか? ありがとうございます。

EDIT:他のライブラリが正常に読み込まれており、共有ライブラリを配布するために分散キャッシュを使用しています。

答えて

2

何ですかldd path/to/libhighgui.so.2.0は、コマンドラインで何を得ますか?

共有ライブラリは他の共有ライブラリに依存しており、これらの共有ライブラリは実行時に標準ライブラリパスで使用できません。

あなたのライブラリが依存するすべての.soが各クラスタノードのライブラリパス(/ libのような標準的なシステムパスであるか、またはjava.libraryを修正する必要があるか.pathシステムプロパティに非標準のディレクトリを含める - またはローカルパスをライブラリパスに追加するときにDistributedCacheを使用してプッシュするだけ)

関連する問題