Я экспериментирую с примером rcpp_hello_world, сгенерированным Rcpp.package.skeleton()
,
Я сделал небольшое изменение в rcpp_hello_world.cpp
Я хотел бы перекомпилировать пакет и запустить функцию с измененным кодом.
Однако, несмотря на очистку пространства имен с rm()
, отделяя библиотеку с detach()
, удаляя пакет с помощью remove.packages()
, перекомпилируем и переустанавливаем пакет с install.packages(.., repos=NULL, type = 'source')
и снова подключить библиотеку library()
, R по-прежнему запускает старую версию кода .cpp.
Если я выйду и перезапущу R, library()
загрузит измененный код .cpp и запустит его, как задумано, но мне не нужно перезапускать R каждый раз, когда я изменяю код C ++ (если это возможно).
Как получить R для правильного обновления вызова C ++ без выхода из R?
Как правило, рекомендуется перезапустить сеанс / перезагрузить пакет.
Поскольку вы можете не захотеть перезапускать основной сеанс, вы можете
используйте Rscript или littler для загрузки нового примера и тестов, я часто так делаю
используйте RStudio, где процесс сборки пакета теперь собирает пакет и перезагружает его в новом для вас сеансе
использовать систему, где вы можете иметь несколько сеансов R и перезапустить те
Других решений пока нет …