2013-01-25 7 views
5

Wenn Sie ein Rcpp-Paket unter Windows installieren, müssen Sie sicherstellen, dass die Paket-DLL entladen ist, oder Sie erhalten den Fehler "Berechtigung verweigert", wenn Sie die neue DLL kopieren. Das bedeutet, dass R bei jedem Neukompilieren neu gestartet werden muss, was ziemlich nervig ist. Gibt es eine Möglichkeit, die Paket-DLL zu entladen, ohne R zu töten?Können Rcpp-Paket-DLLs entladen werden, ohne R neu zu starten?

Ich habe versucht, den Befehl, aber es entlädt nicht die DLL.

Antwort

3

Wenn Sie dies in Ihrer Haupt-R-Sitzung tun wollen (ohne RStudio, die das Paket und Nachladen R sehr einfach macht Neuinstallation), können Sie devtools verwenden:

library(devtools) 
load_all("path/to/my/package") 

unter anderem load_all wird Laden Sie den gesamten R-Code neu und kompilieren Sie die DLL erneut.

4

Ich denke, Sie müssen library.dynam.unload ausführen, um DLLs zu entladen.

6

Meinungen sind darüber geteilt. Ich bevorzuge es oft, die Builds und Tests außerhalb meiner R-Session (s) zu starten, indem ich einfach R CMD INSTALL mit Rscript (oder unter Linux r Aufrufe von Little) verkette, um den neuen Build zu testen. Wenn Sie die richtigen Optionen zu R CMD INSTALL ... verwenden, um Teile zu überspringen, die zusätzliche Zeit benötigen, erhalten Sie eine schnelle Wende UND sind sicher, dass Sie einen neuen Build erhalten.

Und wenn Sie dasselbe Verhalten durch Klicken auf eine Schaltfläche möchten, bietet RStudio es auch an.