Java Hadoop中奇怪的不满意链接错误
我在OpenCV linux版本上做了一个cmake,它创建了所有必需的共享对象(库)。 我甚至能够使用这些库从Java调用示例OpenCV程序,在我的系统上使用JNI。它正在运行。 但是当我尝试在Hadoop映射程序中使用Java Hadoop中奇怪的不满意链接错误,java,hadoop,java-native-interface,mapreduce,Java,Hadoop,Java Native Interface,Mapreduce,我在OpenCV linux版本上做了一个cmake,它创建了所有必需的共享对象(库)。 我甚至能够使用这些库从Java调用示例OpenCV程序,在我的系统上使用JNI。它正在运行。 但是当我尝试在Hadoop映射程序中使用 System.load("path/to/libhighgui.so.2.0"); 我得到一个错误: UnsatisfiedLinkError:/path/to/libhighgui.so.2.0: libjpeg.so.62: cannot open shared ob
System.load("path/to/libhighgui.so.2.0");
我得到一个错误:
UnsatisfiedLinkError:/path/to/libhighgui.so.2.0: libjpeg.so.62: cannot
open shared object file: No such file or directory
有趣的是,OpenCV上的CMake并没有创建这个libjpeg.so
您有什么帮助/解决方案吗?
提前谢谢
EDIT:其他库正在成功加载,我正在使用分布式缓存分发共享库。ldd path/to/libhighgui.so.2.0在命令行上产生了什么效果 您的共享库依赖于其他共享库,这些共享库在运行时在标准库路径上不可用 您需要确保库所依赖的所有.so也位于每个群集节点的库路径上(或者是像/lib这样的标准系统路径,或者您需要修改java.library.path系统属性以包含非标准目录,或者在将本地文件夹添加到库路径时,也可以使用DistributedCache推送它们)