Могу ли я использовать код 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 ответа

Решение

Кратко:

  1. Узкий ответ таков: "Да, теоретически вы обходитесь без Rtools", если вам довелось установить бинарно-идентичную версию (включая патчи) gcc et al. На практике вы не можете (в Windows).

  2. Самый простой способ - скомпилировать пакет вашего кода вне сервера HPC и развернуть на нем двоичную сборку этого пакета. Легко. И не нужны Rtools для двоичных файлов!

  3. Если вы делаете HPC, вы также можете заглянуть в Linux.

Благодаря Дирку Эддельбюттелю я решаю проблему 2, чтобы решить мою проблему

Вот что я сделал.

  1. Создайте пакет R, включая код.cpp, и создайте исходный код пакета (например, YourPkgName_1.0.tar.gz).

  2. Установите пакет, чтобы создать библиотеку на рабочем столе. Например,

    install.packages (pkgs = "C: /Users/User/Desktop/YourPkgName_1.0.tar.gz", repos = NULL, type = "source")

  3. Переместите установленную библиотеку из папки по умолчанию (ваш рабочий стол) на сервер. Мой местный URL был

    C:\Program Files\R\R-3.5.1\ библиотека

  4. Вы можете загрузить функцию cpp в R на вашем сервере, где Rtools не установлен, включив следующую команду в ваш R-скрипт.

    библиотека ("YourPkgName", lib.loc = "YourPersonalLibraryDirectory")

Другие вопросы по тегам