我有一个 R 包,我将一个包含矩阵代数的 MCMC 算法移动到C++
使用该RcppEigen
包,这大大提高了速度。
但是,在 Linux 上R CMD check
给出以下内容(感谢 R-Forge):NOTE
* checking installed package size ... NOTE
installed size is 6.6Mb
sub-directories of 1Mb or more:
libs 6.1Mb
这个警告可能不是由我的 C++ 代码的惊人大小(只有大约 150 行)驱动的,因为它只出现在 Linux 上,但可能是由于我无法正确配置Makevars
文件。(我从未使用过make
或makefile
以前)。
同样在将包提交给 时CRAN
,Brian Ripley 写了一些关于此的内容NOTE
,这让我认为这是一个Makevars
问题:“它来自调试符号。”
MyMakevars
是Rcpp
Makevars
由Rcpp.package.skeleton
.
我的问题:
- 如何配置我
Makevars
的方式以减少 Linux 上已编译库的大小(即,摆脱NOTE
. - 关于如何进入 for 魔法的好资源有
Makevars
哪些Rcpp
?(我在图库
中没有找到任何东西,而关于此的R 扩展手册对我来说也是不可理解的)
我的Makevars
:
## Use the R_HOME indirection to support installations of multiple R version
PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"`
PKG_CPPFLAGS = -I. -I../inst/include
我的Makevars.win
:
## This assume that we can call Rscript to ask Rcpp about its locations
## Use the R_HOME indirection to support installations of multiple R version
PKG_LIBS = $(shell $(R_HOME)/bin/Rscript.exe -e "Rcpp:::LdFlags()")
PKG_CPPFLAGS = -I. -I../inst/include