【发布时间】:2017-10-23 07:16:43
【问题描述】:
我没有~/.R/Makevars 文件和
> tools::makevars_user()
character(0)
> tools::makevars_site()
character(0)
然而,R 必须从某处读取配置,因为 .cpp 文件包含 Rcpp 导出包中的 src 子目录编译正常。
我很想知道如何在src 目录中编写Makefile.win,以便Rcpp 文件与TMB .cpp 文件一起继续编译。目前是一个像这样的makefile:
all: fn1.dll fn2.dll
fn1.dll: fn1.cpp
Rscript --vanilla -e "TMB::compile('fn1.cpp')"
fn2.dll: fn2.cpp
Rscript --vanilla -e "TMB::compile('fn2.cpp')"
clean:
rm -rf *o
可以很好地编译TMB 文件,实际上是由https://github.com/kaskr/adcomp/issues/43 建议的
我尝试修改 Dirk here 建议的 makefile,但即使使用全新的测试包也无法复制 R 的默认行为。
我的会话信息:
> sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
【问题讨论】:
-
规则一:不要写Makefile,只写Makevars sn-p。有关详细信息,请参阅“编写 R 扩展”,并以数千个 CRAN 包为例。
-
至于您的问题本身:
$(RHOME)/etc/Makeconf就是它所在的位置。 -
谢谢。我希望过渡到
Makevarssn-p,但我只需要知道如何将TMB位集成到其中。 -
啊,我的系统在
$(RHOME)/etc/x64/Makeconf和$(RHOME)/etc/i386/Makeconf