我正在尝试为用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应用程序
答案 0 :(得分:1)
在JCuda的支持者Marco13在上面发表评论后,他做出了一些努力,发现该问题是在安装Cuda后更新了图形驱动程序。那改变了一些dll。解决方法是删除并重新安装Cuda。
我将在此处引用forum link,我们在其中迭代该解决方案。