我正试图抓住C ++ / Rcpp作为R的扩展,用于繁重的计算任务。最终,这些C ++库应该集成在一个包中,因此我正在寻找一个我需要轻松工作的工具/ IDE的设置/组合。我知道很多是依赖于味道的,但在选择之前知道我的选择仍然会很好。
所以:当你使用C ++库开发R包时,你使用的设置是什么?
很抱歉,如果之前已经提出这个问题。我找到了R的所有编辑器的列表,但没有专门针对开发包括C ++代码的包。任何提示或提示都非常感谢。
编辑:平台是Windows,但我可以毫无问题地移动到Linux(双启动,只有让我不能使用ubuntu的东西是我的旧卡/旧屏幕组合缺少一个像样的驱动程序)
答案 0 :(得分:6)
Eclipse + statet如果你想在现代世界中加入我们:)
答案 1 :(得分:3)
我当然完全支持更多Rcpp工作:)
关于你的问题,并按顺序:
qtcreator
IDE的建议,这在Linux和Windows上非常好(但不做R)。编辑:所以在某种程度上,这与普通的R / C / C ++ / Fortran开发没有什么不同。在这种情况下,我通常会提到完全专注于R和Emacs的R FAQ Section 6 :) 话虽如此,为C ++工作设置Emacs并不明显,这里有很多问题和帖子。我没有使用任何特定的类浏览器,但有一些,以及自动完成类型的方法等。
答案 2 :(得分:2)
你需要一个可以处理多种语言的编辑器,R,C +,也许是Makefile等。既然你提到了Rtools,你会觉得你在Windows上。我建议Notepad ++它处理R,C ++和许多其他语言。另外,您可以通过NppExec设置自定义命令,以便更轻松地构建软件包。我开发了一些使用Notepad ++大量使用C / C ++的软件包。
答案 3 :(得分:0)
我刚刚编写了一个cmake脚本来生成用于开发Rcpp包的Eclipse CDT项目。
此外,cmake可能能够生成CodeBlocks或KDevelop3项目,但我没有 检查了这些功能。
从github下载FindLibR.cmake 由Rstudio提供
生成Rcpp包,例如
library(Rcpp)
Rcpp.package.skeleton("RcppPackage")
在生成的文件夹中放入以下脚本(或从gist下载),名为 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}")
自定义 CMakeLists.txt中的roxygenize
和R CMD INSTALL
使用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
打开eclipse并导入项目(例如,请参阅cmake-eclipse-cdt)。
索引后,享受Eclipse CDT提供的几个便捷功能
例如跟踪和自动完成。
您可以构建将转换为R CMD INSTALL
或的项目
CMakeLists.txt 中的任何内容。