2013-01-25 37 views
5

Khi cài đặt gói Rcpp trên Windows, bạn cần đảm bảo rằng gói DLL bị dỡ bỏ hoặc bạn nhận được lỗi "Bị từ chối" khi sao chép DLL mới. Điều này có nghĩa là khởi động lại R trên mọi biên dịch lại, điều này khá khó chịu. Có cách nào để dỡ bỏ gói DLL mà không giết chết R?Rcpp có thể gói DLL được dỡ bỏ mà không cần khởi động lại R?

Tôi đã thử lệnh detach("package:my_package", force=TRUE) nhưng không tải DLL xuống.

Trả lời

3

Nếu bạn muốn làm điều này trong phiên R chính của bạn (không sử dụng RStudio, mà làm cho cài đặt lại gói và tải lại R rất dễ dàng), bạn có thể sử dụng DevTools:

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

Trong số những thứ khác, load_all sẽ tải lại tất cả các mã R của bạn, và biên dịch lại và reattach DLL.

4

Tôi đoán bạn cần chạy library.dynam.unload để bỏ DLL.

6

Ý kiến ​​được chia về điều này. Tôi thường thích chạy các bản dựng và kiểm tra bên ngoài (các) phiên R chính của tôi, chỉ cần bằng cách chaining R CMD INSTALL với Rscript (hoặc, trên Linux, r cuộc gọi từ littler) để kiểm tra bản dựng mới. Nếu bạn sử dụng các tùy chọn thích hợp để R CMD INSTALL ... để bỏ qua các phần có thể mất thêm thời gian, bạn sẽ có được một sự thay đổi nhanh chóng và chắc chắn rằng bạn sẽ có được một bản dựng mới.

Và nếu bạn muốn có hành vi tương tự bằng cách nhấp vào nút, RStudio cũng cung cấp nó.

Các vấn đề liên quan