0

我在动态库的链接仅限于某些位置的环境中工作。当我使用 RStudio 并请求一个新的 C++ 文件时,我得到了“Hello World”模板。当我尝试通过单击 RStudio 中的“源”来编译并链接它时,出现错误:

LoadLibrary failure: Access is denied.

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

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

因此,话虽如此,是否有一个环境变量可以让 RCpp 将临时 dll 文件放置在特定位置。还是有其他一些机制可以用来改变这个?

4

1 回答 1

3

尝试设置TMPDIRR 尊重的设置。这确实不是 Rcpp 问题,而是通用R CMD build/R CMD INSTALL问题。

来自help(tempfile)

依次检查环境变量和TMPDIRTMP并使用第一个找到的指向可写目录的变量:如果没有成功则使用。TEMP/tmp

PS Rcpp 使用小写 C。

于 2015-12-08T18:04:05.097 回答