0

嗨,我正在尝试为 Scala 使用 Breeze 库,但一直遇到此错误:

[error] (run-main) java.lang.ExceptionInInitializerError: unable to load from [netlib-native_system-win-x86_64.dll]

由于某种原因,运行我的代码时dll不会加载。我正在使用 SBT,这是我的 build.st

name := "BreezeTest"

version := "1.0"

scalaVersion := "2.10.3"

libraryDependencies  ++= Seq(
        "org.scalanlp" % "breeze_2.10" % "0.5.2",
        "org.scalanlp" % "breeze-viz_2.10" % "0.5.2"
)

有没有其他人遇到过类似的问题或知道是什么原因造成的?

谢谢。

4

1 回答 1

1

在此处查看自述文件的 windows 部分: https ://github.com/fommil/netlib-java

视窗

native_system 构建期望在 %PATH%(或当前工作目录)上找到 libblas3.dll 和 liblapack3.dll。除了供应商提供的实现之外,OpenBLAS 还提供通用调整的二进制文件,并且可以构建 ATLAS。>

使用 Dependency Walker 帮助解决任何问题,例如:UnsatisfiedLinkError(找不到依赖库)。

注意:OpenBLAS 不提供单独的库,因此您必须自定义构建或将二进制文件复制到 libblas3.dll 和 liblapack3.dll 中,同时还需要获取 libgfortran-1-3.dll、libquadmath-0.dll 和来自 MinGW 的 libgcc_s_seh-1.dll。

我应该补充一点,您也可以只设置这些 JVM 属性;它会更慢,但它会保证工作:

-Dcom.github.fommil.netlib.BLAS=com.github.fommil.netlib.F2jBLAS
-Dcom.github.fommil.netlib.LAPACK=com.github.fommil.netlib.F2jLAPACK
-Dcom.github.fommil.netlib.ARPACK=com.github.fommil.netlib.F2jARPACK

我可能应该向 Breeze 添加一个常见问题解答。

于 2013-11-07T02:56:47.097 回答