有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Hadoop中java奇怪的不满意链接错误

我在OpenCV linux版本上做了一个cmake,它创建了所有必需的共享对象(库)。 我甚至能够使用这些库从Java调用示例OpenCV程序,在我的系统上使用JNI。它正在运行。 但当我尝试加载libhighgui时。所以在Hadoop Mapper中使用

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。所以

您有什么帮助/解决方案吗? 提前谢谢

编辑:其他库正在成功加载,我正在使用分布式缓存分发共享库


共 (1) 个答案

  1. # 1 楼答案

    ldd path/to/libhighgui.so.2.0在命令行上产生什么结果

    您的共享库依赖于其他共享库,这些共享库在运行时在标准库路径上不可用

    您需要确保所有的。因此,您的库所依赖的目录也取决于每个集群节点的库路径(或者是像/lib这样的标准系统路径,或者您需要修改java.library.path系统属性以包含非标准目录,或者只需使用DistributedCache推送它们,因为它会将本地文件夹添加到库路径)