我正在构建一个使用位于src
其他包(npcp
包)中的C函数的包。该函数位于文件夹:utilities.c
内,还有一个utilities.h
文件。 (CRAN link of npcp)
在构建函数时(不在我的包中),我可以使用:
调用C
函数
myfunc <- function (x) {
# Some code
library(npcp)
pdfsumunif <- function(x,n) {
nx <- length(x)
.C("pdf_sum_unif",
as.integer(n),
as.double(x),
as.integer(nx),
pdf = double(nx),
PACKAGE = "npcp")$pdf
}
# More code
}
一切正常。当我尝试使用我的函数创建包时会发生问题。由于我必须使用DESCRIPTION
导入Imports: npcp
文件中的库,因此在尝试使用devtools安装软件包时,我得到:
Error in .C("pdf_sum_unif", as.integer(n), as.double(x), as.integer(nx), :
"pdf_sum_unif" not available for .C() for package "npcp"
我尝试为我的包创建src
文件,向其中添加.c
和.h
文件,使用LinkingTo: npcp
,也尝试按照本教程进行操作:{{ 3}},但没有任何效果。有什么建议吗?