有关使用C++源代码创建R包的好教程在哪里?

M. *_*its 30 c++ r configure package

当我开始查看配置脚本时,我很茫然.我不知道如何创建一个R包,它有几个由C/C++构建的函数,它可以在Windows和Linux之间移植.我试图修改现有软件包的内容是没有用的.

任何帮助或链接将不胜感激.

更新: 如果可能,我想链接: Boost, CUDAhwloc

但是,我意识到Boost将是一场噩梦,而且hwloc将不会好得多.所以我只会满足于CUDA.这就是为什么我深入研究并尝试修改一些现有的软件包以满足我的需求(rgl&rglpk).但我愿意从没有依赖开始,并从头开始构建.谢谢大家的建议!!

Sac*_*amp 23

在编写带编译代码的第一个包时,我也很丢失.这里有一些提示,但可能有更好的材料.

编写R包的主要部分是"编写R扩展".这是一个非常完整的指南,但也使得升技很难读通过: http://cran.r-project.org/doc/manuals/R-exts.pdf

这是我在谷歌上发现的一个小教程,我先用过,包含如何使用C代码:http://www.stat.columbia.edu/~gelman/stuff_for_blog/AlanRPackageTutorial.pdf

关于一般R封装另一个导向,但不能与C语言代码:http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf

Rcpp是一个非常有用的C++代码包,但我还没有使用它(实际上是3天).它在包本身中有很多文档.


Dir*_*tel 15

我的默认方法是了解其他人如何解决问题.有超过2800个CRAN套件,其中许多已经存在了十多年.问题是可以解决的,并且已经解决了.

现在,文档也存在,但可能分散太多.此外,目标转移.例如,几年前,我们仍然使用src/Makefile,这些天,是非常推荐反对,因为需要multiarch的构建(在OS X,Windows上,有一天也可以在Linux).

所以试着保持简单有帮助.实际上你可以拥有一个有效的C++项目......没有任何东西.只需删除src/包foo中的源文件,R将知道如何构建libfoo.solibfoo.dylib或...,具体取决于平台.如果您需要其他头文件,请尝试使用src/Makevars.对于外部依赖,它变得更加棘手autoconf,而且需要学习等等,但许多软件包通过简单的东西来滑动.

因此,请扩展您的问题,显示失败的内容并记录您尝试的内容.我相信我们可以帮助你.

编辑:如果您想使用Rcpp包(这有助于R和C++集成),那么在您自己的包中有一个完整的小插图.

编辑2:现在扩展了你的问题,CUDA是一个完全不同的野兽.当你混合不同的编译器等时,这就更难了.在CRAN上有两个示例包,研究它们.

  • 对不起Dirk,你能指出你提到的CRAN中哪两个包? (2认同)