質問

重い計算タスクのRの拡張機能として、C ++/RCPPをグリップしようとしています。最終的に、これらのC ++ LIBはパッケージに統合する必要があります。そのため、簡単に作業する必要があるツール / IDEのセットアップ /組み合わせを探しています。私は多くの味が依存していることを知っていますが、それでも選択する前に私の選択肢を知るのはいいことです。

SO:C ++ LIBSを使用してRパッケージを開発するとき、操作するセットアップは何ですか?

  • RとC ++に同じエディター / IDEを使用していますか?
  • 取得することが重要な追加のツール(rtoolsを除く)はありますか?
  • 一般的なセットアップには、プロセスをかなり知っているかスピードアップすることが重要な微調整はありますか?

この質問が以前に質問された場合は申し訳ありません。 Rのすべての編集者のリストを見つけましたが、C ++コードを含むパッケージの開発に特に向けられたものはありませんでした。ヒントやヒントは本当に感謝しています。

編集:プラットフォームはWindowsですが、問題なくLinuxに移動できます(デュアルブート、Ubuntuを使用しないことだけが、古いカード/古い画面の組み合わせのためのまともなドライバーがないことです)

役に立ちましたか?

解決

Eclipse + statet あなたが現代世界に私たちに参加したいなら:)

他のヒント

もちろん、私はもっと多くのことを支持しています rcpp 仕事 :)

あなたの質問については、そして順番に:

  • 同じエディター(EMACS)は、いずれかのプラットフォームで優れた一貫性をもたらします(ほとんどがLinux、時折ウィンドウ)。記録のために、私も賛成して話しました qtcreator LinuxとWindowsで非常に優れているIDE(ただし、Rは実行しません)。
  • いいえ、Linuxではそれがすべて準備ができています(そして、はい、あなたはrtoolsが必要です)...
  • そうではありません - あなたはおそらくすでに知っています 列をなして これは、R/C ++コードスニペットのテストに適しています。

編集: したがって、ある意味では、これは通常のR / C / C ++ / FORTRAN開発と実際に違いはありません。そして、その場合、私は通常言及します R FAQセクション6 これは完全にRとemacsに捧げられています:)とはいえ、C ++の作業にemacsを設定することは明らかではなく、ここには多くの質問と投稿があります。私は特定のクラスブラウザを使用していませんが、いくつかがあり、タイプなどの自動完成へのアプローチがあります。

rtoolsに言及しているので、複数の言語、r、c+、makefilesなどを処理できるエディターが必要になります。 Notepad ++は、R、C ++、および他の多くの言語を処理することをお勧めします。さらに、NPPEXECを介してカスタムコマンドをセットアップして、パッケージをより簡単に構築できます。 Notepad ++を使用してC/C ++を多用するいくつかのパッケージを開発しました。

RCPPパッケージを開発するためのEclipse CDTプロジェクトを生成するCmakeスクリプトを作成しました。

さらに、CMakeはCodeBlockまたはKDEVelop3プロジェクトを生成できる可能性がありますが、これらの機能をまだチェックしていません。

環境

  • cmake> = 2.8.7
  • Eclipse> = 3.7
  • Eclipse cdt> = 1.4.2
  • r> = 2.15
  • rcpp> = 0.10

構成

  • FindLibr.cmakeからダウンロードしてください github 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}")
    
  • カスタマイズ roxygenizeR CMD INSTALLcmakelists.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
    
  • Eclipseを開き、プロジェクトをインポートします build(見る cmake-eclipse-cdt 例えば)。インデックス作成後、トレースやオートコンプリートなどのEclipse CDTが提供するいくつかの便利な機能をお楽しみください。

  • 変換されるプロジェクトを構築できます R CMD INSTALL またはの何か cmakelists.txt.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top