我无法弄清我所缺少的。正在发生的情况:
我写了一个R-Package,叫做“ pkg_A” 它取决于“ Rcpp”,我已加载模块并设置了一个类,如:
Rcpp::loadModule("pkg_A_modul", what = "pkg_A_cppClass_A")
cppClass_A <- setRcppClass(
Class = "pkg_A_cppClass_A",
CppClass = "pkg_A_cppClass_A",
module = "pkg_A_modul",
fields = c(
remark = "character"
)
)
和其他构造函数
classA <- function(a,b){
# some stuff
tmpObj <- cppClass_A()
# some more stuff
return(tmpObj)
}
class(classA ) <- "classA "
我导出到NAMESPACE的唯一东西是classA函数/类。 一切正常,我可以在没有任何警告的情况下构建该程序包,甚至可以使用“ --as-cran”标志进行检查。
现在,我想在该程序包的顶部构建第二个程序包,让我们将其称为“ pkg_B”,因此我在“依赖于“ pkg_B”的DESCRIPTIONs中列出了“ pkg_A”。
以及在“ pkg_B”的NAMESPACE中使用importFrom(pkg_A, classA)
加载类。
现在我想实现一个类
classB <- setRefClass(
"classB",
contains = c("classA"),
fields = c( b = "numeric)
)
但是当我现在想要构建“ pkg_B”时,出现错误:
getClass(what,where = where)中的错误:“ classA”未定义 课
我还尝试使用“ pkg_A_cppClass_A”代替,或者使用整个pkg_A或使用pkg_A :: classA。什么都没改变。
希望这个问题足够完整。如果您缺少一些信息,请告诉我。 感谢任何建议!