构建opencv库不会生成“libopencv_java244.so”

时间:2013-08-12 07:31:24

标签: linux opencv cmake 32bit-64bit elf

我一直试图让opencv在eclipse中工作,我一直在关注this tutorial尝试让它在eclipse中工作。我已经到了创建运行make -j8的.so库的部分。当我在32位Linux系统上运行它时,这很好用。我得到了我需要的所有必要文件,但是当我尝试运行程序时,我在Eclipse中得到一个异常。

  

线程中的异常" main" 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位系统上不工作。 谁能帮我理解?

1 个答案:

答案 0 :(得分:0)

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

第1步:

需要/usr/local/lib添加路径以使其正常工作。

(如果缺少某个链接,请使用sudo locate <filename>查找其中的位置)

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

(之后你需要重启)

第2步:

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

sudo ldconfig

我希望这会解决你的问题(特别是最后一步可能会解决问题)