解决 Solaris 上未声明的 -llapack 依赖性问题

Resolving unstated -llapack dependency issue on Solaris

我已经在 CRAN 上发布了一个 R 包,这取决于一些 RcppArmadillo 代码的成功编译。该包构建正确并且没有关于我尝试过的所有测试系统的注释(CRAN comments here if interested),但是,CRAN 检查在 solaris-sparc 上失败并且无法加载对 solaris-x86 的依赖项。

See here for CRAN checks

错误原因为 ld: fatal: library -llapack: not found(来自 goldi-00install.html)。

在我的MakevarsMakevars.win中,我已经在PKG_LIBS中声明了-llapack,我认为这已经足够了。

PKG_LIBS= -Wsign-compare -llapack 两者都

但是,我不确定如何为 Solaris 声明这种依赖关系。是否有一个单独的 Makevars 我必须写,或者有一个不同的位置我必须声明依赖关系?

我已经阅读了"Writing R Extensions"手册的relevant section,怀疑我可能必须在PKG_LIBS中声明$(LLAPACK_LIBS),但无法测试它在 solaris 平台上。这是正确的路径吗?

非常感谢您的帮助。


Package on Github

Package on CRAN

你在 src/Makevars 中的那一行是错误的。不要做你做过的事:

PKG_LIBS= -Wsign-compare -llapack

做我们都做的事,示例包有什么以及auto-generated package gets:

PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)

当我们说它确实有效时,请相信我们。我敢打赌,在 CRAN 上的两百九十一个 (291 !!) 包中,基本上都使用这个。

而任何不这样做的人,就像您一样,只是做错了。上面 调度到 R 对 LAPACK 及其依赖项的了解 。使用它。