jar.exe ツールで抽出した JCudaDriver の dll をロードしようとしています。
System.loadLibrary("JCudaDriver-0.9.2-windows-x86_64")
そのドライバーは間違いなく私の java.libary.path にあります。手動で削除すると、代わりに not-found type エラーが発生するためです。今、私は次のエラーを受け取ります。
スレッド「メイン」の例外 java.lang.UnsatisfiedLinkError: myPath.JCudaDriver-0.9.2-windows-x86_64.dll.dll: 指定されたプロシージャが見つかりませんでした
私の理解では、この指定された手順は、別の dll への依存関係が欠落しているか、バージョンの衝突があるということです。dumpbin /dependents xx.dll
依存するdllを見つけるために、コマンドラインでWindowsユーティリティ機能を使用しました。それらは次のとおりです。
Dump of file JCudaDriver-0.9.2-windows-x86_64.dll Image has the following dependencies: nvcuda.dll ADVAPI32.dll KERNEL32.dll
エラーなしで nvcuda.dll をロードできますが、後者の 2 つは問題です。
fun main(args: Array<String>) {
//System.loadLibrary("nvcuda")
System.loadLibrary("ADVAPI32")
//System.loadLibrary("KERNEL32")
}
これは、ADVAPI32.dll をロードしようとしたときのエラーです。
スレッド「メイン」の例外 java.lang.UnsatisfiedLinkError: C:\aaa_eric\code\lib\dlls_x64\advapi32.dll: %1 は有効な Win32 アプリケーションではありません