我一直被一个 Unresolved 问题所困扰 'R_registerRoutines', 'R_useDynamicSymbols'
来自 R CMD 检查的注释。我已经阅读了“Writing R Extensions”中的相关部分,还在线查看了其他各种帖子,但问题仍然存在。
我所做的总结:
- 我创建了
init.c
文件放在src/
目录包含下面 [1] 中给出的以下内容。这是使用tools::package_native_routine_registration_skeleton(".", "src/init.c", character_only = FALSE)
完成的(因为默认character_only = TRUE
不工作)。 - 我检查了相同的名字是否出现在
RcppExports.cpp
中在src/
和RcppExports.R
在R/
在下面的 [2] 中给出。 - 我已经添加了
useDynLib(JMbayes, .registration = TRUE)
在命名空间中。
因此,欢迎任何指点!
最佳答案
将我的评论提升为答案。
错误的原因是 RStudio 和 Windows 机器上的 devtools
之间的交互。因此,您遇到的是关于本地入口点注册的假肯定。如果您提交要检查的包裹 r-hub.io
或 winbuilder
您应该会收到适当的回复。
此外,从 0.12.12 开始,由 tools::package_native_routine_registration_skeleton()
提供的本地入口点注册现在在 Rcpp 中自动完成。因此,无需提供您自己的 src/init.c
。但是,要启用这种自动创建行为,您必须删除 src/init.c
文件并重新运行 Rcpp::compileAttributes()
。这将导致生成 RcppExports.cpp
,并在文件末尾注册 native 注册。
关于r - 发现没有调用 : 'R_registerRoutines' , 'R_useDynamicSymbols' 未解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46183946/