我想编写一个调用我的C代码的R函数,并且不需要我在每个可能的平台上重新编译C代码(进入二进制文件或SO / DLL)。这样的事情有可能吗?
答案 0 :(得分:2)
根据优秀评论,将您的代码设为package
。更好的是,将包提交给CRAN。他们将负责为Linux,OSX和Windows分发二进制文件。
有关格式化的详细信息,请查看utils::package.skeleton
以获取设置包的便捷工具,并查看D / L(来自CRAN)手册R-exts.pdf
。
答案 1 :(得分:1)
使用内联包(使用Rcpp):
# with Rcpp plugin
if( require( Rcpp ) ) {
fx <- cxxfunction( signature(x = "integer", y = "numeric" ) , ’
return wrap( as<int>(x) * as<double>(y) ) ;
’, plugin = "Rcpp" )
fx( 2L, 5 )