提高 Rcpp 编译速度

Increase Rcpp compile speed

我正在使用 Rcpp 编写一个 R 包,它也使用一些 C++ 代码,但每次我这样做 R CMD build <package name>,编译整个包需要很长时间,因为有几个.cpp 文件。有没有办法只编译更改的 files/new 文件,而不是重新编译所有内容?非常感谢!

我有一个像这样的 Makevars 文件:

PKG_CXXFLAGS=-std=gnu++11

PKG_LIBS=-L. -lall

我知道的最好的技巧是部署 awesome 前端 ccache 大多数 Linux 发行版都有,OS X 有也是(在 Brew IIRC 中)。它可以与 g++clang.

一起使用

所以在~/.R/Makevars我有

VER=
CCACHE=ccache
CC=$(CCACHE) gcc$(VER)
CXX=$(CCACHE) g++$(VER)
SHLIB_CXXLD=g++$(VER)
FC=ccache gfortran$(VER)
#FC=gfortran
F77=$(CCACHE) gfortran$(VER)

其中 VER 目前为空,因为 4.9 是默认值。现在,如果您一遍又一遍地重新构建相同的包,编译时间会非常快,因为未更改的代码会导致检索目标文件。