我正在维护一个遗留代码库,并被迫使用一些肮脏的黑客来绕过一些 game-breaking issues 。 hack 需要我手动编辑 RcppExports 文件。是的,这听起来很愚蠢,但它确实有效,而且无论如何我都不会经常更改界面,所以它会坚持下去。

我使用 devtools::test 测试我的包,它在后台调用 testthat::test_dir ,然后调用 devtools::load_all 来“模拟安装包并加载 library() 时会发生什么”。这以某种方式导致我手工制作的 RcppExports 文件被清除并替换为一些自动生成的东西,导致很多错误。

所以我在这里,寻找另一个黑客来解决由黑客引起的问题。有什么建议么?

最佳答案

很好,正如评论的那样。Rcpp 属性是那些匹配 // [[...]] 的属性,
这就是 compileAttributes 寻找的东西,以确定要删除/覆盖哪些文件。
但是,整个机制是可选的(尽管推荐)。
如果您无论如何都必须切换到手动调整,
然后您可以删除属性并重命名以前生成的导出。
这样 Rcpp 将停止将该代码视为它创建的内容,
所以它将停止更新/覆盖它。

关于r - 使用 devtools::test 时避免重新生成 RcppExports,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57437298/

10-12 19:56