C ++コード統合によるパッケージ開発用のIDE /セットアップ
質問
重い計算タスクの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}")
カスタマイズ
roxygenize
とR CMD INSTALL
の cmakelists.txtcmakeでプロジェクトを生成します
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.