2015-12-08 52 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.