-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

用户@BEL-8WF4XW1:~$

我不明白为什么它可以在 32 位系统上工作,但不能在 64 位系统上工作。谁能帮我理解?

4

1 回答 1

0

安装 open cv 后我必须做两件事(我在 64 位 ubuntu 系统上):

步骤1:

它需要/usr/local/lib添加到路径中才能使其正常工作。

(当缺少链接时,用sudo locate <filename>它来查找它的位置)

这不是默认值,但可以添加到/etc/environmentgksudo gedit /etc/environment

(之后您需要重新启动)

第2步:

在此之后它可能仍然无法运行。使用它来配置链接:

sudo ldconfig

我希望这能解决您的问题(尤其是最后一步可能会解决问题)

于 2013-08-26T21:46:31.110 回答