在Windows上安裝Rcpp軟件包時,需要確保軟件包DLL已卸載,否則複製新DLL時會出現「權限被拒絕」錯誤。這意味着在每次重新編譯時重新啓動R,這非常煩人。有沒有什麼辦法可以在不殺死R的情況下卸載包DLL?可以在不重新啓動R的情況下卸載Rcpp包DLL嗎?
我試過detach("package:my_package", force=TRUE)
命令,但它並沒有卸載DLL。
在Windows上安裝Rcpp軟件包時,需要確保軟件包DLL已卸載,否則複製新DLL時會出現「權限被拒絕」錯誤。這意味着在每次重新編譯時重新啓動R,這非常煩人。有沒有什麼辦法可以在不殺死R的情況下卸載包DLL?可以在不重新啓動R的情況下卸載Rcpp包DLL嗎?
我試過detach("package:my_package", force=TRUE)
命令,但它並沒有卸載DLL。
如果你想這樣做,你的主要研發會話(不使用RStudio,這使得重新安裝包,重裝[R很容易),你可以使用devtools:
library(devtools)
load_all("path/to/my/package")
除其他事項外,load_all
會重新加載所有R代碼,然後重新編譯並重新連接DLL。
我想你需要運行library.dynam.unload
來卸載DLL。
意見分這個。我經常更喜歡在我的主R會話之外運行構建和測試,只需將R CMD INSTALL
與Rscript
(或Linux,r
來自littler的調用)鏈接起來以測試新構建。如果您使用R CMD INSTALL ...
的適當選項來跳過可能需要額外時間的零件,則您可以快速週轉並確保您獲得全新構建。
如果你想通過點擊一個按鈕來實現相同的行爲,RStudio也提供它。