r
  • rcpp
  • 2012-08-11 63 views 1 likes 
    1

    我试图运行测试的功能,但我得到一个编译错误:RCPP编译错误

    library(Rcpp) 
    library(inline) 
    
    testfun = cxxfunction( 
    signature(x="numeric", i="integer"), 
    body = ' 
    NumericVector xx(x);  
    int ii = as<int>(i); 
    xx = xx * ii; 
    return(xx); 
    ', plugin="Rcpp") 
    testfun(1:5, 3) 
    

    错误compileCode(F,代码,语言=语言,详细=详细): 编译错误,功能(S)/方法(S)没有创建! 此外:警告信息: 运行命令'C:/PROGRA~1/R/R-215~1.1/bin/x64/R CMD SHLIB filede44a566900.cpp 2> filede44a566900.cpp.err.txt'has status 1

    我将是你的帮助表示感谢。我使用Windows 7,R2.15.1,64位

    +0

    您使用的cygwin?检查它是否配置正确?使用什么编译器版本?由于链接错误,我有类似的问题 – Michael 2012-08-11 18:01:52

    回答

    1

    尝试增加verbose=TRUE你似乎有一个简单的设置问题 - 也许你的路径不正确。

    你的代码是正确的,在这里的Linux下运行得很好(如果不需要额外的体操,因为是在Windows上)。

    你略加编辑从我的Emacs ESS缓冲区复制/缩进例如:

    R> library(inline) 
    R> 
    R> testfun <- cxxfunction(signature(x="numeric", i="integer"), body = ' 
    + NumericVector xx(x); 
    + int ii = as<int>(i); 
    + xx = xx * ii; 
    + return(xx); 
    + ', plugin="Rcpp") 
    R> 
    R> testfun(1:5, 3) 
    [1] 3 6 9 12 15 
    R> 
    
    +0

    请注意,不支持Cygwin。 – 2012-08-13 20:50:08

    相关问题