如何在R Rcpp中包含sourceCpp并与之链接

用户3194934

我一直在尝试使用Rcpp软件包将某些c / c ++代码的功能扩展到R中。

但是我在包含标题和链接时遇到了问题

我制作了以下示例来说明我的问题:

  1. 我有一个由.h文件和.c文件组成的原始c程序

头文件:add.h

int add(int a,int b);

cfile:add.c

int add(int a,int b){
  return a+b;
}
  1. 一个“接口” c ++函数,该函数应将我的R调用与我的c文件中的功能相关联

猴子cpp

#include <cstdio>
#include <Rcpp.h>
#include "add.h"
using namespace Rcpp; 

// [[Rcpp::export]]
NumericVector monkey(std::string string1,std::string string2) {

  //below not important
  NumericVector rary(5);
  for(int i=0;i<5;i++) 
    rary[i] = i;
  return rary;
}
  1. 尝试使用“猴子”功能的Rcode

猴子

nam1 <- "nam1"
nam2 <- "nam2"

Rcpp::sourceCpp("monkey.cpp")

monkey(nam1,nam2)

q1。是否可以使用sourceCpp函数为gcc编译指定-I标志?

q2。如果我的界面cpp文件依赖于其他.o文件,是否可以使用sourceCpp函数与这些文件链接?

德克·埃德尔布特尔(Dirk Eddelbuettel)

快速的:

  • sourceCpp()是对于小的测试应用程序; 它可以使用一组扩展程序,这些扩展程序提供扩展插件。

  • 因此,您可能需要为您的头文件编写一个自定义插件,这可能会过分杀人,因为...

  • R中更复杂的代码组织通常是通过包完成的。您应该考虑一下。

“ Rcpp属性”小插图中的3.5节提供了所有选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章