R:使用内联包时的C++优化标志

tla*_*don 18 c++ r inline rcpp

在R中使用内联包中的cxx函数时,如何更改cpp编译器的优化标志?

默认情况下,在我的机器上,它编译-g -O2.但我想用-O3优化来提高速度.我使用Rcpp插件,如果这有任何区别.

我试过创建自己的插件,我试图设置cxx函数的不同参数,但没有任何效果.

我想一个选项是使用R CMD SHLIB而不是使用编译它cxxfunction.但是Rcpp建议使用它,inline因为他们的大多数测试用例都在使用它.

感谢您的帮助,如果您需要任何澄清,请与我们联系

Dir*_*tel 15

有几种选择:

  1. 最好的解决方案是为R的所有用途修改它,因此创建例如文件~/.R/Makevars并设置CFLAGS,CXXFLAGS,.......这将影响所有使用R CMD INSTALL ...,R CMD SHLIB ...等等pp和cxxfunction()内联使用它,它也适用于此.

  2. 特定于内联和Rcpp:修改插件,这就是它是一个插件系统的原因.见Rcpp:::Rcpp.plugin.maker().

  3. 从切换回cxxfunction()cfunction(),因此不使用插件和手动设置的所有参数.

不用说,我喜欢选项1并自己使用它.

编辑:我过去常用的第四种(原始!!)方法是编辑$R_HOME/Makeconf和/或Makeconf.site.