Вопрос

Я пытаюсь получить GRIP на C ++ / RCPP в качестве расширения для R для тяжелых вычислительных задач. В конечном итоге, эти S ++ Libs должны быть интегрированы в пакет, и для этого я ищу настройку / комбинацию инструментов / IDE, которые мне нужно было легко работать. Я знаю много вкуса зависимого, но все же было бы приятно узнать мои варианты перед выбором.

Итак: когда вы разрабатываете R пакеты с помощью C ++ Libs, какая установка вы работаете?

  • Используете ли вы тот же редактор / IDE для R и C ++ и какой из них (или какие)?
  • Есть ли дополнительные инструменты (кроме RTools), которые важно получить?
  • Существуют ли настройки в общей настройке, которые важно знать или ускорить процесс значительно?

Извините, если этот вопрос спросил раньше. Я нашел список всех редакторов для R, но ничего конкретно не направленного на разработку пакетов, включая код C ++. Любые подсказки или советы действительно ценятся.

Редактировать: платформа - это Windows, но я могу перейти к Linux без проблем (двойной ботинок, только что держать меня от использования ubuntu - это отсутствие достойного драйвера для моей старой карты / старой комбинации экрана)

Это было полезно?

Решение

Затмение + статус Если вы хотите присоединиться к нам в современном мире :)

Другие советы

Я конечно полностью в пользу большего RCPP. Работа :)

Что касается ваших вопросов, а по порядку:

  • тот же редактор (Emacs), который делает приятную консистенцию на любой платформе, которую я использую (в основном в Linux, starsionally Windows); Для записи я также выступил в пользу qtcreator IDE, которая довольно приятно на Linux и Windows (но не делает R).
  • Нет, на Linux все готово сделано (а да, на Windows вам нужно RTools) ...
  • не совсем - вы, вероятно, уже знаете о в линию Что полезно для тестирования фрагментов кода R / C ++.

Редактировать: Таким образом, это действительно не отличается от нормального развития R / C / C ++ / Fortran. И в этом случае я обычно называю Faq Раздел 6 Которые посвящены полностью r и Emacs :) с тем, что сказано, настроек умирания для работы C ++ не очевидно, и здесь есть ряд вопросов и сообщений. Я не использую какой-либо конкретный браузер класса, но есть некоторые, а также подходы к автоконтеру типов и т. Д.

Вы захотите редактор, который может обрабатывать несколько языков, R, C +, может быть, Makefiles и т. Д. С тех пор, как вы упоминаете RTools, звучит так, будто вы находитесь в Windows. Я бы предложил NOTEPAD ++ он обрабатывает R, C ++ и много других языков. Кроме того, вы можете настроить пользовательскую команду через NPPEXEC, чтобы построить пакет легче. Я разработал несколько пакетов, которые используют C / C ++ с помощью Notepad ++.

Я только что написал сценарий CMake для создания проекта Eclipse CDT для разработки пакета RCPP.

Кроме того, Comake может способствовать созданию кодовых блоков или проектов KDevelop3, но я пока не проверил эти функции.

Окружающая среда

  • CMAKE> = 2.8.7
  • Eclipse> = 3.7
  • Eclipse CDT> = 1.4.2
  • R> = 2.15
  • RCPP> = 0.10

Конфигурация

  • Скачать findlibr.cmake гадость предоставляется Rstudio

  • Генерировать пакет RCPP, например

    library(Rcpp)
    Rcpp.package.skeleton("RcppPackage")
    
  • Поместите следующий скрипт (или загрузите его из суть), названный Cmakelists.txt., в сгенерированной папке, такой как RcppPackage В предыдущем примере.

    cmake_minimum_required(VERSION 2.8)
    project(RcppPackage)
    find_package(LibR)
    if(${LIBR_FOUND})
    else()
        message(FATAL_ERROR "No R...")
    endif()
    message(STATUS ${CMAKE_SOURCE_DIR})
    execute_process(
        COMMAND ${LIBR_EXECUTABLE} "--slave" "-e" "stopifnot(require('Rcpp'));cat(Rcpp:::Rcpp.system.file('include'))"
        OUTPUT_VARIABLE LIBRCPP_INCLUDE_DIRS
    ) 
    include_directories(BEFORE ${LIBR_INCLUDE_DIRS})
    message(STATUS ${LIBR_INCLUDE_DIRS})
    include_directories(BEFORE ${LIBRCPP_INCLUDE_DIRS})
    message(STATUS ${LIBRCPP_INCLUDE_DIRS})
    add_custom_target(RcppPackage ALL
        COMMAND find ${CMAKE_SOURCE_DIR} -name "*.o" -exec rm "{}" "\;"
        COMMAND find ${CMAKE_SOURCE_DIR} -name "*.so" -exec rm "{}" "\;"
        COMMAND ${LIBR_EXECUTABLE} "--slave" "-e" "\"stopifnot(require(roxygen2));roxygenize('${CMAKE_SOURCE_DIR}',roclets=c('rd','collate','namespace'))\""
        COMMAND ${LIBR_EXECUTABLE} CMD INSTALL "${CMAKE_SOURCE_DIR}")
    
  • Настроить roxygenize и R CMD INSTALL в Cmakelists.txt.

  • Генерировать проект с cmake

    mkdir build # don't create subdirectory of RcppPackage
    cd build
    cmake -G "Eclipse CDT4 - Unix Makefiles" <path to RcppPackage> -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE
    
  • Открытое затмение и импорт проект от build(Видеть Cmake-Eclipse-CDT Например). После индексации насладитесь несколькими удобными функциями, предоставляемыми Eclipse CDT, такими как трассировка и автозаполнение.

  • Вы можете построить проект, который будет преобразован в R CMD INSTALL или что-нибудь в Cmakelists.txt..

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top