2015-12-08 34 views
0

我在一个环境中将动态库的链接限制在特定位置。当我使用RStudio并请求一个新的C++文件时,我得到了“Hello World”模板。当我尝试编译和链接,在通过点击RStudio“源”,我得到一个错误:RCpp临时构建位置

LoadLibrary failure: Access is denied. 

此错误是因为该库位于这是不允许的,能够给空间加载DLL文件。为了绕过这个限制,我想确定如何告诉RCpp将临时DLL(不在包中)放在特定的位置。

我知道Dirk建议这不在RCpp的范围内,并且所有的代码都应该存在于软件包中,但这并不是他对这里的用户最友好的用户环境。我怀疑大多数人会使用Git的RStudio项目。

所以,这就是说,是否有一个环境变量,我可以破解,让RCpp将临时的dll文件放在一个特定的地方。还是有其他一些机制可以用来改变这种情况?

回答

3

尝试设置其中R尊重的TMPDIR。这实际上不是一个Rcpp问题,而是一个通用的问题R CMD build/R CMD INSTALL问题。

help(tempfile)

The environment variables TMPDIR , TMP and TEMP are checked in turn and the first found which points to a writable directory is used: if none succeeds /tmp is used.

PS RCPP用小写C.