我试图重现基于R帮助的R示例。 这是来自内联包的cxx函数的示例。
require(Rcpp)
require(inline)
# 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 )
## equivalent shorter form using rcpp()
fx <- rcpp(signature(x = "integer", y = "numeric"),
' return wrap( as<int>(x) * as<double>(y) ) ; ')
}
我收到了这条消息:
Error in compileCode(f, code, language = language, verbose = verbose) :
Compilation ERROR, function(s)/method(s) not created! Warning message:
running command 'make -f "C:/PROGRA~1/R/R-30~1.3/etc/i386/Makeconf" -f "C:/PROGRA~1/R/R-30~1.3/share/make/winshlib.mk" ....
另外:
Warning message:
running command 'C:/PROGRA~1/R/R-30~1.3/bin/i386/R CMD SHLIB file3a86e316ef8.cpp ...
我正在使用:
平台i386-w64-mingw32和R-3.0.3
答案 0 :(得分:1)
正如凯文所说,它更容易使用属性。属性// [[Rcpp::export]]
为您完成所有工作。
安装R
和Rcpp
上的当前版本后,创建一个名为test.cpp
的文件来放置此代码:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
double fx(int x, double y){
return x*y;
}
/*** R
fx(2L,5)
fx(2L,5.1)
*/
然后在R
会话中运行:Rcpp::sourceCpp('test.cpp')
如果您已按照安装R
,R-tools
的说明并正确设置PATH
个变量(如果在Windows上),这应该可行。