Error: missing "PACKAGE" argument in RcppExport.R?
Error: missing "PACKAGE" argument in RcppExport.R?
我重建了我正在开发的包(而且我已经一个月没有更新了),我发现我所有的测试都失败了,错误是:
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);
}
后一个文件还需要吗?
是的,"everything changed" 因为 R 3.4.0 造就了我们,并且我们符合。
第二部分绝对没问题 -- 这就是应该的样子。
请检查
- 你有生成的 src/RcppExports.cpp
- 您在 NAMESPACE
中有正确的注册信息
过去几周更新了许多包,这通常有效。如果有疑问,可以通过创建一个快速的一次性包
Rcpp.package.skeleton()
并比较。
另请注意,我们有两个极端情况需要修复,因此如果您需要,可以使用临时版本(参见 rcpp-devel 发布)——但是
我觉得你不会。
我重建了我正在开发的包(而且我已经一个月没有更新了),我发现我所有的测试都失败了,错误是:
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);
}
后一个文件还需要吗?
是的,"everything changed" 因为 R 3.4.0 造就了我们,并且我们符合。
第二部分绝对没问题 -- 这就是应该的样子。
请检查
- 你有生成的 src/RcppExports.cpp
- 您在 NAMESPACE
过去几周更新了许多包,这通常有效。如果有疑问,可以通过创建一个快速的一次性包
Rcpp.package.skeleton()
并比较。
另请注意,我们有两个极端情况需要修复,因此如果您需要,可以使用临时版本(参见 rcpp-devel 发布)——但是 我觉得你不会。