我正在Rstudio中创建一个R包,我选择了Configure Build Tools > Configure
选项并选择了Use roxygen to generate NAMESPACE
。我在Rcpp中编写了我的函数,这是NAMESPACE
在使用roxygen2
生成它时的样子:
# Generated by roxygen2 (4.1.1): do not edit by hand
export(function1)
export(function2)
export(function3)
export(function4)
由于我的函数是用Rcpp编写的,然后我将其导出,然后它们将通过.Call
在R中使用。但是,在writing R extensions中,我们应该在这种情况下使用useDynLib()
。这就是为什么当我尝试调用function1
并且错误是:
Error in .Call("Mypackage_function1", PACKAGE = "Mypackage", var1, :
"Mypackage_function1" not available for .Call() for package "Mypackage"
当我在Rstudio中启动项目时使用默认的NAMESPACE
时,我在NAMESPACE
中有以下内容:
useDynLib(packagename)
exportPattern("^[[:alpha:]]+")
importFrom(Rcpp, evalCpp)
当我使用默认的NAMESPACE
时,我可以使用.Call
调用函数,但是当我检查包时我没有使用roxygen生成NAMESPACE
时会收到警告。
有解决方法吗?任何建议表示赞赏。