找不到指定的过程:对于jcuda 9.2

时间:2018-08-09 17:34:52

标签: dllimport jcuda

我正在尝试为用jar.exe工具提取的JCudaDriver加载dll。

System.loadLibrary("JCudaDriver-0.9.2-windows-x86_64")

该驱动程序肯定在我的java.libary.path中,因为如果手动将其删除,则会收到未找到的类型错误。现在,我收到以下错误。

  

线程“ main”中的异常java.lang.UnsatisfiedLinkError:myPath.JCudaDriver-0.9.2-windows-x86_64.dll.dll:找不到指定的过程

我的理解是,此指定的过程位于对另一个dll的某种缺少依赖关系中,或者存在版本冲突。我在命令行上使用Windows实用程序功能作为dumpbin /dependents xx.dll来找到相关的dll。它们如下。

Dump of file JCudaDriver-0.9.2-windows-x86_64.dll
Image has the following dependencies:
nvcuda.dll
ADVAPI32.dll
KERNEL32.dll

我可以毫无错误地加载nvcuda.dll,但是后两个是问题。

fun main(args: Array<String>) {
   //System.loadLibrary("nvcuda")
   System.loadLibrary("ADVAPI32")
   //System.loadLibrary("KERNEL32")
 }

这是尝试加载ADVAPI32.dll时的错误

  

线程“ main”中的异常java.lang.UnsatisfiedLinkError:C:\ aaa_eric \ code \ lib \ dlls_x64 \ advapi32.dll:%1不是有效的Win32应用程序

1 个答案:

答案 0 :(得分:1)

在JCuda的支持者Marco13在上面发表评论后,他做出了一些努力,发现该问题是在安装Cuda后更新了图形驱动程序。那改变了一些dll。解决方法是删除并重新安装Cuda。

我将在此处引用forum link,我们在其中迭代该解决方案。