5

WindowsにRcppパッケージをインストールする場合は、パッケージDLLがアンロードされていることを確認する必要があります。そうしないと、新しいDLLをコピーするときに「アクセスが拒否されました」というエラーが発生します。これは、再コンパイルのたびにRを再起動することを意味し、これはかなり面倒です。Rを殺さずにパッケージDLLをアンロードする方法はありますか?

コマンドを試しましたdetach("package:my_package", force=TRUE)が、DLLがアンロードされません。

4

3 に答える 3

8

これについては意見が分かれています。ビルドを実行してメインのRセッションの外でテストすることを好むことがよくあります。これは、新しいビルドをテストするためにチェーンR CMD INSTALLを使用するRscript(または、Linuxの場合rはlittleからの呼び出し)だけです。適切なオプションを使用しR CMD INSTALL ...て余分な時間がかかる可能性のあるパーツをスキップすると、迅速なターンアラウンドが得られ、新しいビルドを確実に取得できます。

また、ボタンをクリックして同じ動作が必要な場合は、RStudioもそれを提供します。

于 2013-01-25T03:17:48.080 に答える
5

library.dynam.unloadDLLをアンロードするために実行する必要があると思います。

于 2013-01-25T03:10:32.450 に答える
5

メインのRセッションでこれを実行したい場合(RStudioを使用せずに、パッケージの再インストールとRの再ロードが非常に簡単になります)、devtoolsを使用できます。

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

特に、load_allすべてのRコードをリロードし、DLLを再コンパイルして再接続します。

于 2013-01-25T12:41:42.207 に答える