2011-02-10 62 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文件。

相關問題