私は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ビットシステムでは機能しない理由がわかりません。誰でも私が理解するのを助けることができますか?