0

我能够在 Mac OSX 10.9.3 64 位系统 ( http://www.jcuda.org/downloads/downloads.html ) 上编译 JCuda 的本机 0.6.0 库。不幸的是,我不够聪明,无法将所有东西都打包到一个罐子里。有人可以帮我这样做吗?我创建了一个 Netbeans 项目并将所有提供的 Java src 文件夹的内容复制到其中。然后我把所有东西都打包进一个罐子里。然后,我使用 Jarsplice 0.4.0 尝试构建一个 Jar 文件,其中包含下面列出的所有本机库文件(第一个 .a 文件除外)。不幸的是,当我将生成的 jar 链接到我的项目并运行它时,它没有工作,因为缺少 libJCudaRuntime-apple-x86_64.jnilib。

提前谢谢你

我的 lib 文件夹包含: libCommonJNI.a libJCublas-apple-x86_64.dylib libJCublas2-apple-x86_64.dylib libJCudaDriver-apple-x86_64.dylib libJCudaRuntime-apple-x86_64.dylib libJCufft-apple-x86_64.dylib libJCurand-apple-x86_64.dylib libJCusparse-apple-x86_64.dylib

4

1 回答 1

2

只是在这里也回答了这个问题:本机库不能直接打包到 JAR 中(或者更确切地说:如果它们仅包含在 JAR 中,则当前无法加载它们)。

尽管 JCudaLibUtils类的基础设施基本上提供了执行此操作的可能性,但它不是“官方”支持的。这样做的一个原因是,只有当所有操作系统的所有本机库都可用(32 位和 64 位),这才有意义。然后可以将所有这些库放入一个 JAR 中,并在运行时透明地解包和加载它们。

通常需要一段时间才能使用所有本机库。这个问题可以通过https://github.com/MysterionRise/mavenized-jcuda之类的东西得到缓解,它管理对本机库的依赖关系。

于 2014-06-06T18:56:46.550 回答