Могу ли я использовать код Rcpp в R без установки Rtools?
Сервер Windows HPC в моей лаборатории не имеет Rtools, поэтому я получил это сообщение, когда искал код Rcpp.
Warning message:
running command 'make -f "C:/PROGRA~1/R/R-32~1.2/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-32~1.2/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="sourceCpp_1.dll" WIN=64 TCLBIN=64 OBJECTS="MultiBayes.v1.o"' had status 127
Error in sourceCpp("./rcode/MultiBayes.v1.cpp") :
Error 1 occurred building shared library.
WARNING: The tools required to build C++ code for R were not found.
Please download and install the appropriate version of Rtools:
http://cran.r-project.org/bin/windows/Rtools/
Execution halted
Поскольку административный персонал говорит, что установка Rtools на сервере может занять много времени, мне интересно, есть ли другой способ избежать этой проблемы и запустить код Rcpp без установки Rtools.
Насколько я знаю, сборка пакета не будет полезна, так как он также использует Rtools при установке. Пожалуйста, поправьте меня, если ошибаетесь.
Можно ли обойти это, чтобы запустить код?
Спасибо за любые комментарии и идеи.
2 ответа
Кратко:
Узкий ответ таков: "Да, теоретически вы обходитесь без Rtools", если вам довелось установить бинарно-идентичную версию (включая патчи) gcc et al. На практике вы не можете (в Windows).
Самый простой способ - скомпилировать пакет вашего кода вне сервера HPC и развернуть на нем двоичную сборку этого пакета. Легко. И не нужны Rtools для двоичных файлов!
Если вы делаете HPC, вы также можете заглянуть в Linux.
Благодаря Дирку Эддельбюттелю я решаю проблему 2, чтобы решить мою проблему
Вот что я сделал.
Создайте пакет R, включая код.cpp, и создайте исходный код пакета (например, YourPkgName_1.0.tar.gz).
Установите пакет, чтобы создать библиотеку на рабочем столе. Например,
install.packages (pkgs = "C: /Users/User/Desktop/YourPkgName_1.0.tar.gz", repos = NULL, type = "source")
Переместите установленную библиотеку из папки по умолчанию (ваш рабочий стол) на сервер. Мой местный URL был
C:\Program Files\R\R-3.5.1\ библиотека
Вы можете загрузить функцию cpp в R на вашем сервере, где Rtools не установлен, включив следующую команду в ваш R-скрипт.
библиотека ("YourPkgName", lib.loc = "YourPersonalLibraryDirectory")