r
  • rcpp
  • 2012-08-11 55 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

    相關問題