【发布时间】:2017-06-24 18:34:54
【问题描述】:
我重新构建了我正在开发的包(并且自一个月以来我没有更新过),我发现我的所有测试都失败并出现错误:
Error in myCPlusPlusFun(... :
object 'myPackage_myCPlusPlusFun' not found
然后我发现我的RcppExports.R 文件中的所有函数都缺少参数PACKAGE = myPackage,请参阅git diff 的输出:
myCPlusPlusFun <- function(X) {
- invisible(.Call('myPackage_myCPlusPlusFun', PACKAGE = 'myPackage', X))
+ invisible(.Call(myPackage_myCPlusPlusFun, X))
知道发生了什么吗?我想我需要有
invisible(.Call('myPackage_myCPlusPlusFun', PACKAGE = 'myPackage', X))
在我构建包时再次自动生成行 (?)
谢谢!
编辑:我现在的NAMESPACE 文件中有以下几行:
exportPattern("^[[:alpha:]]+")
importFrom(Rcpp,evalCpp)
useDynLib(locus, .registration = TRUE)
(加上其他一些imports 和exports)。
我最近还必须添加一个 C 文件来注册具有以下内容的动态符号:
#include <R.h>
#include <Rinternals.h>
#include <R_ext/Rdynload.h>
void R_init_myPackage(DllInfo* info) {
R_registerRoutines(info, NULL, NULL, NULL, NULL);
R_useDynamicSymbols(info, TRUE);
}
后一个文件还需要吗?
【问题讨论】:
-
谢谢,我也在看这个(但暂时无法解决问题)...