我正在构建一个 R 包,需要为 OSX 构建一个 jni 库(称为myPackage.jnilib
)作为构建过程的一部分,然后让 R 的自动安装机制将它放在我的包的 libs 目录中。
问题是 R 的默认设置是尝试构建一个名为myPackage.so
. 我希望能够自定义它,但看不到如何。
我可以通过在 Makevars 中使用虚假的“all”目标(在此处描述)来颠覆 R 的机制,然后将文件复制到inst
我的包的目录中来获得一部分。这对于我自己的本地使用来说是可以的,但是在尝试构建通用二进制文件时会产生头痛并且不是很便携。我目前正在为 CRAN 准备包,所以这种方法不太可能奏效。
我可以看到两个潜在的解决方案,但还没有工作
在安装过程中将我的库手动复制到我的包的 libs 目录中。由于此目录是动态创建的,我如何从 Makevars 或配置脚本中找出它是什么
最好的解决方案:告诉 R CMD SHLIB 我的输出文件的名称,这样我就可以使用 R 的正常包机制并让它将文件复制到正确的目录。