增加Rcpp编译速度

时间:2015-07-09 00:07:13

标签: c++ r rcpp

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

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

PKG_CXXFLAGS=-std=gnu++11

PKG_LIBS=-L. -lall

1 个答案:

答案 0 :(得分:10)

我所知道的最好的诀窍是部署大多数Linux发行版所拥有的 awesome 前端ccache,以及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是默认值。现在,如果反复重新构建相同的包,编译时间非常快,因为未更改的代码会导致检索目标文件。

相关问题