【发布时间】:2012-10-10 04:09:51
【问题描述】:
尽管互联网上有一些解决方案,但我发现没有一个适合我当前面临的问题(尽管可能我太笨了):
我正在尝试构建一个 R 包,该包广泛使用由 Makefile 编译的共享对象(是的,不好的做法,我知道,但是不能告诉 Makevars 文件将 C 和 Fortran 代码编译成一个共享对象)来自包的src 目录中的代码。无论我将 .so 编译到哪里(我尝试了 src、libs 和包基本文件夹)或我如何命名它(正如上面提到的解决方案之一,它必须像它所包含的包一样命名) , R CMD check 退出
** testing if installed package can be loaded
Error in library.dynam(lib, package, package.lib) :
shared object ‘SoMNibEN.R.so’ not found
由于我的 NAMESPACE 文件中的 useDynLib(SoMNibEN.R) 指令(其中 SoMNibEN.R 是我的包的名称,但它也不适用于原始名称)
我的假设是我要么使用错误的 useDynLib() 命令,要么我的 Makefile 做错了(尽管编译工作得很好,并且共享对象是在我的项目文件夹中创建的 - 我只是不这样做'不知道是否成功复制到包安装目录)。
所以,如果有人知道我在这里可能做错了什么,请告诉我!
【问题讨论】:
标签: r namespaces makefile package shared-libraries