IDE /设置用于包装开发的C ++代码集成
题
我试图抓住C ++/RCPP作为重型计算任务的R扩展。最终,这些C ++液体应集成到一个软件包中,因此我正在寻找工具 / IDE的设置 /组合,我需要轻松工作。我知道味道很大,但是在选择之前知道我的选择仍然很高兴。
因此:当您开发带有C ++ libs的R软件包时,您可以使用什么设置?
- 您是否将相同的编辑器 / IDE用于R和C ++以及哪个(或哪个)?
- 是否有额外的工具(除了rtools)很重要?
- 一般设置中是否有大量了解或加快流程很重要的调整?
抱歉,如果以前问这个问题。我找到了R的所有编辑列表,但没有什么特别针对开发包括C ++代码的软件包的列表。任何提示或技巧都非常感谢。
编辑:平台是Windows,但我可以毫无问题地搬到Linux(双启动,唯一使我无法使用Ubuntu的事情是缺少旧卡/旧屏幕组合的驱动程序)
解决方案
Eclipse + Statet 如果您想加入我们的现代世界:)
其他提示
我当然完全赞成 RCPP 工作 :)
至于您的问题,按顺序:
- 同一编辑器(emacs),它在我使用的任何一个平台上都可以很好地保持一致性(主要是Linux,偶尔窗口);为了记录,我也大声疾呼
qtcreator
IDE在Linux和Windows上非常不错(但不做R)。 - 不,在Linux上,这一切都准备就绪(是的,在Windows上,您确实需要rtools)...
- 不是真的 - 您可能已经知道 排队 这非常适合测试R/C ++代码段。
编辑: 因此,从某种意义上说,这与普通的R / C / C ++ / Fortran开发没有什么不同。在这种情况下,我通常是指 R FAQ第6节 这完全专门用于R和Emacs :)话:)说,为C ++工作设置Emacs并不明显,这里有许多问题和帖子。我不使用任何特定的类浏览器,但是有一些浏览器以及类型的自动完成的方法。
您将需要一个可以处理多种语言R,C+,MakeFiles等的编辑器。由于您提到了Rtools,听起来就像您在Windows上。我建议Notepad ++它处理R,C ++和许多其他语言。另外,您可以通过nppexec设置自定义命令,以更轻松地构建软件包。我已经开发了一些软件包,可以大量使用记事本++使用C/C ++。
我刚刚写了一个CMAKE脚本来生成Eclipse CDT项目,以开发RCPP软件包。
此外,Cmake可能能够生成CodeBlocks或KDEVEVEL3项目,但我尚未检查这些功能。
环境
- 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.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.