函数不适用于.Call使用Rcpp.package.skeleton()和compileAttributes

use*_*788 -1 c++ r rcpp

我试图密切关注Rcpp包文档中的指示,但我收到错误

Error in .Call("MicroCreditLRVBR_TestJacobian", PACKAGE = "MicroCreditLRVBR") : 
  "MicroCreditLRVBR_TestJacobian" not available for .Call() for package "MicroCreditLRVBR"
Run Code Online (Sandbox Code Playgroud)

包框架是用Rcpp.package.skeleton().我复制了我RC++代码,修改了Makevars指向包外的一些代码,更新了DESCRIPTION链接到RcppEigen,然后运行compileAttributes().然后我跑去R CMD build创建一个.gz文件并R CMD INSTALL安装它.它已成功构建和链接,但因上述错误而终止.

我可以看到函数MicroCreditLRVBR_TestJacobian确实在RcppExports.cpp和中定义RcppExports.R.我不知道为什么它不可用.Call.

请注意,NAMESPACE包括useDynLib(MicroCreditLRVBR)exportPattern("^[[:alpha:]]+").

当前状态下包的公共副本位于此github仓库中.任何帮助,将不胜感激.

coa*_*ess 5

当您从以下位置切换名称时:

MicroCreditLRVB

MicroCreditLRVB R.

您忘了修改文件中的包名称NAMESPACE

例如

useDynLib(MicroCreditLRVB) 
Run Code Online (Sandbox Code Playgroud)

去:

useDynLib(MicroCreditLRVBR) 
Run Code Online (Sandbox Code Playgroud)

另外,从microcredit_stan_lib.R中删除第1-22行.它们应该被放入一个"演示"文件中/inst.

最后,导入boost标头使用BH和减少绝对路径Makevars.