devtools 导致 RcppArmadillo 包出现问题

devtools causes problems in RcppArmadillo packages

提问人:f0nzie 提问时间:8/19/2017 最后编辑:f0nzie 更新时间:8/21/2017 访问量:326

问:

在过去的几天里,我一直在使用很多 RcppArmadillo。我一直在做一个 3D 数组卷积项目。在最初的陡峭学习曲线之后,我设法使用Armadillo创建了一些有用的C++例程。向德克致敬。

然后突然间,RcppArmadillo开始做一些奇怪的事情;我一直收到这条消息:

  Found no calls to: 'R_registerRoutines', 'R_useDynamicSymbols'

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

这发生在 Windows 10 中。在 Linux 中,您可能会收到相同的消息,但可以使用或遵循 中的新说明快速修复。但是,在 Windows 中,这是行不通的。为什么?RcppArmadillo::RcppArmadillo.package.skeleton()Writing R Extensions - 5.4 Registering native routines

为了隔离问题,我从带有全新 R (3.4.1) 的虚拟机 (VM) 开始。当您开始使用 RcppArmadillo 构建的演示时,它将构建演示而不会打嗝、没有注释、没有警告消息。安装后,RcppArmadillo的问题就开始了。devtools

要重现这一点,您可以执行以下操作:从新的 R 开始,并安装仅使用 RcppArmadillo(一对夫妇)构建所需的运行包。 构建演示包。您不会收到任何错误。 下载我测试过的这些软件包中的任何一个的源代码:gckrig、GAS、abcrf、AbsFilterGSEA、Amelia、MAVE、SparseFactorAnalysis、RcppProgress、artfima、geospt。他们都使用 RcppArmadillo。他们应该可以构建,前提是你用他们的依赖项喂养他们。 现在,安装 .在您开始收到消息后:(1)(2)(3)(4)devtools

Found no calls to: 'R_registerRoutines', 'R_useDynamicSymbols'
It is good practice to register native routines and to disable symbol
search

不管我做了什么,我都无法摆脱这张纸条。我在 Linux 中尝试了相同的软件包,完全没有问题。这会导致延迟,因为无法将包含该消息的包提交到 CRAN。

(5)现在,如果您卸载和依赖项并再次尝试构建任何 RcppArmadillo 包;不再有消息寄存器本机例程。美丽。devtools

我想知道为什么会引起这场冲突。我们怎样才能解决这个问题?我喜欢,但如果我必须使用 RcppArmadillo,则必须将其卸载。艰难的抉择。devtoolsdevtools

编辑

这是完全可重复的。以下是重现行为的步骤:

(1)从新的 R 开始,并安装使用 RcppArmadillo(一对)构建包所需的包。请勿安装 .devtools

(2)构建演示包。您将不会收到任何寄存器本机例程错误。

(3) 下载我测试过的这些软件包的源代码:、、、他们都使用 RcppArmadillo。他们应该可以构建,前提是你用他们的依赖项喂养他们。gckrigGASabcrfAbsFilterGSEAAmeliaMAVESparseFactorAnalysisRcppProgressartfimageospt

(4) 现在,安装 .尝试使用上述任何软件包再次构建。在开始接收消息后立即:注册本机例程。devtools

(5)现在,如果您卸载和依赖项并尝试再次构建任何RcppArmadillo包;不再有与注册本机例程相关的消息。devtools

编辑
这已经过测试,三个 Windows 10 虚拟机实例从头开始安装 R 3.4.1、Rtools。在所有测试中,使用 RcppArmadillo 构建包时,都会使用消息寄存器本机例程。如果您尝试在 Linux 中构建 - 相同的包 - 它将通过,没有注释。

r RCPP 开发工具

评论

0赞 Dirk Eddelbuettel 8/20/2017
这里没有什么可复制的,很多其他人都在使用开发工具。您可能只是指向另一个旧的 R 版本。
0赞 f0nzie 8/20/2017
不。我用 R 3.4.1 全新安装测试了 3 个不同的虚拟机。否则我不会发表它。你试过吗?
1赞 Dirk Eddelbuettel 8/20/2017
我不使用,因为我(个人)觉得它混淆了。我使用 R 的时间比它存在的时间要长得多,并且有自己的帮助程序(脚本),但主要依赖于 R Core 记录和推荐的命令。如果您遇到 devtools 问题,您知道在哪里投诉。RcppArmadillo 本身---很好,直到您提供可重现的示例。devtools
1赞 Dirk Eddelbuettel 8/20/2017
R 3.4.* 最近进行了更改,需要注册,以及 R 和 Rcpp 所做的更改。我几乎可以肯定你会被绊倒——而且我也刚刚上传了一个到 CRAN 的修复程序,您可以在 RcppArmadillo 的 git 存储库中找到它。当然,这些都与devtools无关,所以也许你的报告是关于这个的,但只是混淆了。我仍然无法分辨,因为没有什么可重复的
1赞 f0nzie 8/20/2017
我看到了 CRAN 团队的那张纸条。他们在 Linux 中也看不到问题,仅在 Windows 中。我发布这个是为了让人们知道这个问题可以被重现并追踪到其来源。没有.我不认为这是 RcppArmadillo 的问题,否则软件包将无法构建。确实如此。只是多了一点盐(devtools),炖菜就烂了。devtools

答: 暂无答案