-1

私はopencvをEclipseで動作させようとしてきました.このチュートリアルに従って、Eclipseで動作するようにしました。実行中の.soライブラリを作成する部分に到達しましたmake -j8。これは、32 ビット Linux システムで実行すると問題なく動作します。必要なファイルはすべて取得できますが、プログラムを実行しようとすると Eclipse で例外が発生します。

スレッド「メイン」の例外 java.lang.UnsatisfiedLinkError: /home/joris/opencv/build/lib/libopencv_java246.so: /home/user/opencv/build/lib/libopencv_java246.so: 間違った ELF クラス: ELFCLASS32 (考えられる原因: アーキテクチャ ワード幅の不一致)

これが何を意味するのか調べたところ、ライブラリは 32​​ ビットですが、私の jvm は 64 ビットであることがわかりました。使用している jvm を変更できないため、ネイティブ ライブラリを 64 ビットでビルドする必要があります。

現在、64 ビット システムで opencv ライブラリをビルドしようとしましたが、32 ビット システムでビルドして得た libopencv_java246.so ファイルが見つかりません。

user@BEL-8WF4XW1:~$ find /home/user/opencv/ -name *.so

/home/user/opencv/3rdparty/lib/mips/libnative_camera_r4.0.3.so

/home/user/opencv/3rdparty/lib/mips/libnative_camera_r4.2.0.so

/home/user/opencv/3rdparty/lib/mips/libnative_camera_r4.1.1.so

/home/user/opencv/3rdparty/lib/armeabi-v7a/libnative_camera_r2.3.3.so

/home/user/opencv/3rdparty/lib/armeabi-v7a/libnative_camera_r4.0.3.so

/home/user/opencv/3rdparty/lib/armeabi-v7a/libnative_camera_r3.0.1.so

/home/user/opencv/3rdparty/lib/armeabi-v7a/libnative_camera_r4.0.0.so

/home/user/opencv/3rdparty/lib/armeabi-v7a/libnative_camera_r4.2.0.so

/home/user/opencv/3rdparty/lib/armeabi-v7a/libnative_camera_r4.1.1.so

/home/user/opencv/3rdparty/lib/armeabi-v7a/libnative_camera_r2.2.0.so

/home/user/opencv/3rdparty/lib/armeabi/libnative_camera_r2.3.3.so

/home/user/opencv/3rdparty/lib/armeabi/libnative_camera_r4.0.3.so

/home/user/opencv/3rdparty/lib/armeabi/libnative_camera_r3.0.1.so

/home/user/opencv/3rdparty/lib/armeabi/libnative_camera_r4.0.0.so

/home/user/opencv/3rdparty/lib/armeabi/libnative_camera_r4.2.0.so

/home/user/opencv/3rdparty/lib/armeabi/libnative_camera_r4.1.1.so

/home/user/opencv/3rdparty/lib/armeabi/libnative_camera_r2.2.0.so

/home/user/opencv/3rdparty/lib/x86/libnative_camera_r2.3.3.so

/home/user/opencv/3rdparty/lib/x86/libnative_camera_r4.0.3.so

/home/user/opencv/3rdparty/lib/x86/libnative_camera_r3.0.1.so

/home/user/opencv/3rdparty/lib/x86/libnative_camera_r4.2.0.so

/home/user/opencv/3rdparty/lib/x86/libnative_camera_r4.1.1.so

user@BEL-8WF4XW1:~$

32ビットシステムでは機能するのに64ビットシステムでは機能しない理由がわかりません。誰でも私が理解するのを助けることができますか?

4

1 に答える 1

0

open cvをインストールした後、2つのことをしなければなりませんでした(私は64ビットのubuntuシステムを使用しています):

ステップ1:

/usr/local/libそれを機能させるには、パスに追加する必要がありました。

(リンクsudo locate <filename>が見つからない場合は、を使用して場所を検索してください)

これはデフォルトではありませんが、次のように追加できます/etc/environment:gksudo gedit /etc/environment

(その後、再起動が必要です)

ステップ2:

この後、まだ実行されない可能性があります。これを使用してリンクを構成します。

sudo ldconfig

これで問題が解決することを願っています(特に最後のステップでうまくいくかもしれません)

于 2013-08-26T21:46:31.110 に答える