2011-02-10 61 views
0

我有一个NVida显卡,我想用它进行严肃的计算。我从NVida网站下载了一个驱动程序并安装了JOCL绑定。我下载了一个演示程序并编译了它。该方案却并没有运行,因为:找不到/lib/libJOCL-linux-x86.so

> Error while loading native library 
> "JOCL-linux-x86" with base name "JOCL" 
> Operating system name: Linux 
> Architecture : i386 Architecture bit 
> size: 32 Stack trace from the attempt 
> to load the library as a resource: 
> java.lang.NullPointerException: No 
> resource found with name 
> '/lib/libJOCL-linux-x86.so' at 
> org.jocl.LibUtils.loadLibraryResource(LibUtils.jav 
> a:139) at 
> org.jocl.LibUtils.loadLibrary(LibUtils.java:83) 
> at org.jocl.CL.<clinit>(CL.java:47) at 
> JOCLSample.main(JOCLSample.java:50) 
> Stack trace from the attempt to load 
> the library as a file: 
> java.lang.UnsatisfiedLinkError: no 
> JOCL-linux-x86 in java.library.path at 
> java.lang.ClassLoader.loadLibrary(ClassLoader.java 
> :1681) at 
> java.lang.Runtime.loadLibrary0(Runtime.java:840) 
> at 
> java.lang.System.loadLibrary(System.java:1047) 
> at 
> org.jocl.LibUtils.loadLibrary(LibUtils.java:93) 
> at org.jocl.CL.<clinit>(CL.java:47) at 
> JOCLSample.main(JOCLSample.java:50) 
> Exception in thread "main" 
> java.lang.UnsatisfiedLinkError: Could 
> not load the native library at 
> org.jocl.LibUtils.loadLibrary(LibUtils.java:117) 
> at org.jocl.CL.<clinit>(CL.java:47) at 
> JOCLSample.main(JOCLSample.java:50) 

试图解决它,我做了以下内容:

  • 我肯定“JOCL-0.1.4d.jar”文件被正确地添加到类路径; /lib/libJOCL-linux-x86_64.so肯定是在这个罐子里面

  • 我也提取了libJOCL-linux-x86_64.so形成jar并使用了相应的-Djava.library.path =命令。

  • 的libJOCL-linux-x86_64.so库也对我的LD_LIBRARY_PATH

  • 我也是在正确的目录运行ldconfig来索引这个库

,但问题仍然存在

+0

您可以尝试再次发布堆栈跟踪吗?它目前的形式非常严重并且不可读。 – 2011-02-10 14:20:35

回答

1

根据你在32位虚拟机上运行这个错误信息,这意味着你需要32位.so文件(或切换到使用64位JVM)。

请注意,Java通常从java.library.path(而不一定是从LD_LIBRARY_PATH)加载.so文件。

相关问题