gpt4 book ai didi

r - 使用 multiarch 在开发过程中快速安装包

转载 作者:行者123 更新时间:2023-12-04 12:51:05 30 4
gpt4 key购买 nike

我正在开发一个包“xyz”,它使用带有多个 cpp 文件的 Rcpp。当我只更新 R 代码时,我想在包目录上运行 R CMD INSTALL xyz 而不必重新编译所有未更改的共享库。如果我指定 --no-multiarch 标志,那工作正常:源目录 src 第一次填充编译对象,如果源没有改变下次会重新使用它们。然而,随着多体系结构的开启,R 决定制作两个 srcsrc-i386src-x86_64 的副本。它似乎混淆了 R CMD INSTALL总是 重新运行所有编译。有什么解决方法吗?

(我知道还有其他方法,例如 devtools::load_all,但如果可能的话,我宁愿坚持使用 R CM INSTALL)。

平台是macOS 10.7,我有最新版的R。

最佳答案

我有一个部分的答案给你。一个非常容易的加速是通过使用 ccache 提供的,你可以为所有 R 编译启用它(例如通过 R CMD whatever 从而也得到 inline, attributes, RStudio 使用, ...) 全局通过 .R/Makevars:

edd@max:~$ tail -10 .R/Makevars

VER=4.6
CC=ccache gcc-$(VER)
CXX=ccache g++-$(VER)
SHLIB_CXXLD=g++-$(VER)
FC=ccache gfortran
F77=ccache gfortran
MAKE=make -j8

edd@max:~$

它负责编译单元的所有缓存。

现在,这并没有“明确地”解决 --no-multiarch 方面的问题,我不怎么玩它,因为我们在 Linux 上仍然主要是“单架构”。这最终会改变,但现在还没有。但我怀疑,但通过让编译器决定缓存,您也将获得最终效果。

其他方面也可以控制,例如 ~/.R/check.Renviron 可用于打开或关闭某些测试。我倾向于让它们全部打开——在这里浪费几秒钟比从维也纳得到一个令人讨厌的消息要好。

关于r - 使用 multiarch 在开发过程中快速安装包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13437915/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com