【问题标题】:Increase Rcpp compile speed提高 Rcpp 编译速度
【发布时间】:2015-07-09 08:45:22
【问题描述】:

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

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

PKG_CXXFLAGS=-std=gnu++11

PKG_LIBS=-L. -lall

【问题讨论】:

    标签: c++ r rcpp


    【解决方案1】:

    我知道的最好的技巧是部署 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 是默认值。现在,如果您一遍又一遍地重新构建相同的包,编译时间会非常快,因为未更改的代码会导致检索目标文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 2017-08-22
      相关资源
      最近更新 更多