首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R检查注意事项:未发现调用:‘r_registerRoutines’,‘R_useDynamicSymbols’

R检查注意事项:未发现调用:‘r_registerRoutines’,‘R_useDynamicSymbols’
EN

Stack Overflow用户
提问于 2017-02-18 09:25:33
回答 3查看 6.2K关注 0票数 50

如何避免出现在R CMD check中的新R开发版本(R正在开发(不稳定) (2017-02-15 r72179))中的注意事项?

代码语言:javascript
复制
• checking for unstated dependencies in examples ... OK
• checking line endings in C/C++/Fortran sources/headers ... OK
• checking compiled code ... NOTE
File ‘pkgname/libs/pkgname.so’:
  Found no calls to: ‘R_registerRoutines’, ‘R_useDynamicSymbols’

It is good practice to register native routines and to disable symbol
search.

例如,在赫米斯克

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-20 08:28:02

这个信息有点神秘。我还查看了其他包,发现名称空间文件中的useDynLib(packagename)useDynLib(packagename, .registration = TRUE)所取代。

此外,我还在.c目录中添加了一个名为registerDynamicSymbolsrc/文件,代码如下:

代码语言:javascript
复制
// RegisteringDynamic Symbols

#include <R.h>
#include <Rinternals.h>
#include <R_ext/Rdynload.h>

void R_init_markovchain(DllInfo* info) {
  R_registerRoutines(info, NULL, NULL, NULL, NULL);
  R_useDynamicSymbols(info, TRUE);
}

我采纳了GitHub Rcpp的这个建议。规范引用在写R扩展

此外,R发展邮件列表还提供了补充信息。

更新

最直接的办法是:

  1. 使用当前的R开发版本(最终将变为3.4)
  2. 运行tools::package_native_routine_registration_skeleton(".")并将全部输出复制并粘贴到要放入src/packagename_init.c文件中
  3. 更新NAMESPACE,验证useDynLib(packagename, .registration = TRUE)
  4. 如果有必要,将exportPattern替换为export( list of object to be exported )

更新7月18日

正如@Symbolix使用最新版本的R和RStudio的devtools所指出的,点2. (init.c文件)由devtools (使用RStudio校验位数)或工具包处理。

票数 48
EN

Stack Overflow用户

发布于 2017-10-14 03:07:01

我在Windows构建包中遇到了一个持久的问题。(.dll而不是.so)

上面接受的答案也应该解决Windows的这个问题,但是如果它不能解决这个问题。确保objdump.exe是指向适当的拱。即.../Mingw_64/bin/objdump.exe.可以使用which objdump.exe从命令提示符中检查这一点。不知怎么的,一个32位的objdump.exe在我的路径中找到了一个更高优先级的位置。这种拱形失配将产生File format not recognized错误。

票数 5
EN

Stack Overflow用户

发布于 2021-08-12 01:06:30

首先,我完全按照乔治·斯皮迪加托说的做了。但还是收到了警告。最后,我通过这样做解决了问题:

Sys.setenv(PATH =Sys.getenv(“PATH”),“C:\RTools40 40”,"C:\RTools40\mingw64\bin",sep =“;”)

必须将mingw64 64\bin添加到PATH中,因为这是objdump.exe所在的位置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42313373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档