Frage

Ich versuche, einen Griff auf C ++ / RCPP als Erweiterung R für schwere Rechenaufgaben zu erhalten. Letztlich sollten diese C ++ Bibliotheken in einem Paket integriert werden, und dafür bin ich für ein Setup / Kombination von Werkzeugen / IDE suchen, dass ich an die Arbeit leicht benötigen würde. Ich weiß viel ist Geschmack abhängig, aber immer noch wäre es schön, meine Optionen zu wissen, vor der Auswahl.

Also: Wenn Sie R-Pakete mit C ++ Bibliotheken entwickeln, was ist das Setup mit denen Sie arbeiten

?
  • Sie den gleichen Editor / IDE für R und C ++ verwenden, und welche (oder welche)?
  • gibt es zusätzliche Tools (abgesehen von RTools), die wichtig sind zu bekommen?
  • gibt es Verbesserungen in der allgemeinen Setup, die wichtig sind zu wissen, oder beschleunigen den Prozess erheblich?

Sorry, wenn diese Frage vor gefragt wird. Ich fand eine Liste aller Editoren für R, aber nichts speziell auf die Entwicklung von Verpackungen, einschließlich C ++ Code gerichtet. Für Hinweise oder Tipps sind wirklich zu schätzen.

Edit: Plattform Windows, aber ich kann ohne Probleme auf Linux bewegen (Dual-Boot, einzige, was mich hält von Ubuntu ist der Mangel an einem anständigen Treiber für meine alte Karte / alte Anzeigenkombination)

War es hilfreich?

Lösung

Eclipse-+ statet , wenn Sie wollen in uns in der modernen Welt verbinden:)

Andere Tipps

Ich bin natürlich voll zu Gunsten von mehr RCPP Arbeit :)

Wie für Ihre Fragen, und in dieser Reihenfolge:

  • gleichen Editor (Emacs), die auf jeder Plattform I Nutzung (meist Linux, occassionally Windows) für schöne Konsistenz macht; für die Aufzeichnung haben aussprechen ich auch zugunsten des qtcreator IDE, die auf Linux und Windows ist ziemlich nett (aber R nicht tun).
  • nein, auf Linux läuft alles fertig gemacht (und ja, unter Windows Sie müssen RTools) ...
  • nicht wirklich - Sie wahrscheinlich bereits wissen, über inline was gut ist, R für die Prüfung / C ++ Code-Schnipsel.

Edit: So in einer Art und Weise, das ist wirklich nicht anders als normale R / C / C ++ / Fortran-Entwicklung. Und in diesem Fall beziehe ich mich in der Regel auf R FAQ-Bereich 6 , die vollständig zu R und Emacs gewidmet ist :) Mit dieser sagte, das Setzen von Emacs oben für C ++ Arbeit ist nicht offensichtlich, und es gibt hier eine Reihe von Fragen und Beiträgen. Ich habe keinen bestimmten Klasse-Browser verwenden, aber es gibt einige, sowie Ansätze zur Auto-Vervollständigung von Typen etc.

Sie erhalten einen Editor wollen, die mehrere Sprachen verarbeiten kann, R, C +, vielleicht Makefiles etc. Da Sie RTools erwähnen, es klingt wie Sie unter Windows sind. Ich würde vorschlagen, Notepad ++ es behandelt R, C ++, und eine ganze Menge anderer Sprachen. Darüber hinaus können Sie Setup benutzerdefinierter Befehl durch NppExec das Paket leichter zu bauen. Ich habe ein paar Pakete entwickelt, die starke Nutzung von C / C ++ mit Notepad ++ machen.

ich ein Cmake Skript gerade geschrieben Eclipse-CDT-Projekt für die Entwicklung von RCPP Paket zu erzeugen.

Darüber hinaus Cmake könnte in der Lage sein, oder Codeblocks KDevelop3 Projekte zu generieren, aber ich habe nicht diese Funktionen überprüft, noch nicht.

Umwelt

  • CMake> = 2.8.7
  • Eclipse-> = 3.7
  • Eclipse-CDT> = 1.4.2
  • R> = 2.15
  • RCPP> = 0,10

Konfiguration

  • Download FindLibR.cmake von Github zur Verfügung gestellt von Rstudio

  • Gene RCPP Paket, zum Beispiel

    library(Rcpp)
    Rcpp.package.skeleton("RcppPackage")
    
  • Setzen Sie das folgende Skript (oder laden Sie es von Kern ), mit dem Namen CMakeLists .txt , in dem erzeugten Ordner wie RcppPackage solche im vorigen Beispiel.

    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}")
    
  • Anpassen roxygenize und R CMD INSTALL in CMakeLists.txt

  • generieren Projekt mit 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
    
  • Öffnen Sie Eclipse und Import-Projekt von build (Siehe cmake-eclipse-cdt Beispiel). Nach Indizierung, genießen einige praktische Funktionen von Eclipse-CDT zur Verfügung gestellt wie Verfolgung und die automatische Vervollständigung.

  • Sie können das Projekt erstellen, die zu R CMD INSTALL umgewandelt wird, oder alles in dem CMakeLists.txt .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top