更新*: 我在这里部分找到了答案: https://github.com/opencv/opencv/issues/10080
问题是由于没有标志的建筑造成的: -DWITH_FFMPEG = OFF
显然,在我的java类中使用它时,会导致出现问题并阻止 System.LoadLibrary()失败。
在Cmake中再次设置此标志,编译所有内容,现在它可以正常工作。
然而,我还有另一种解决方法,我不理解,也许你们中的一些人可以帮助我,它是这样的:
使用“--disable-libopenmpt”从src构建ffmpeg
他想说什么?我如何从src构建ffmpeg?
对于noob问题抱歉
我也将把我用来编译的cmake命令行放在Raspberry Pi 3上:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_EXAMPLES=OFF -D BUILD_DOCS=OFF -D BUILD_SHARED_LIBS=OFF -D OPENCV_EXTRA_MODULES_PATH="$HOME/opencv_contrib/modules" /home/pi/opencv/build/ ..
无论如何,希望这有助于未来可能遇到此问题的未来人员。 此致
首先,我想说我现在搜索谷歌这个asnwer已经有3天了,还有stackoverflow,但显然我没有找到任何对我有用的解决方案。 我也发现这个解决方案最接近我的问题,但在我的情况下不起作用:Loading OpenCV library in Linux?
我在我的Raspberry pi上编译了opencv最新源代码(对于java),我得到了以下文件(以及其他文件)libopencv_java400.so和opencv_java.jar
我在我的Raspberry Pi上使用Eclipse,当我尝试在我的java程序中加载 libopencv_java400.so 库时,它无法说明找不到源代码。< / p>
我尝试了几种加载文件的方法,但我收到以下错误:System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
返回错误(在调试模式下): 未找到来源。
此外,我发现如果我查看 org.opencv.core 中的核心类,则返回:
private static String getNativeLibraryName() { return "opencv_java400"; } and not libopencv_java400.so
我错过了什么或这是正确的吗?
还尝试过:
String libName = "";
libName = "libopencv_java400.so";
System.load(new File("/home/pi/workspace/ro.romaniasoft.FRI/libs/".concat(libName)).getAbsolutePath());
返回错误: 线程中的异常“main”java.lang.UnsatisfiedLinkError:无法加载库: /home/pi/workspace/ro.romaniasoft.FRI/libs/libopencv_java400.so
System.load("/home/pi/opencv/build/lib/libopencv_java400.so");
返回错误(在调试模式下): 未找到来源。
我在Java Build Path中添加了本机路径 - &gt; opencv_java.jar - &gt;本地库位置为“ / home / pi / opencv / build / lib ”
我还尝试将“libopencv_java400.so”复制到“ / usr / lib / jvm / java-8-openjdk-armhf / jre / lib / arm ”
显然没什么作用。我陷入了这个Load Library步骤。
你能帮帮我吗?