2015-12-03 166 views
0

我不能運行我RCPP犰狳代碼RCPP犰狳randg()

return arma::randg<arma::mat>(n,1,arma::distr_param(shape,scale)); 

它返回錯誤; 錯誤:randg():C++ 11編譯器要求

我的g ++版本是5.1.0。我該怎麼辦?

+0

您可以考慮閱讀關於如何打開C++ 11編譯的Rcpp文檔。我們解釋清楚。此外,搜索引擎可以是有益的 - 在我的第一次擊中工作。你真的還沒有碰到Rcpp手冊或[Rcpp Gallery](http://gallery.rcpp.org)? –

+0

我檢查了很多與這個問題有關的網站,但似乎沒有與g ++版本相關的問題,但我仍然有這個問題。 – Shin

+0

@Shin - 將'-std = C++ 11'添加到您的編譯器標誌。 – mtall

回答

4

Rcpp Gallery有一個標籤,並在標籤c++11,你會發現three dedicated answers to C++11 and Rcpp

其中第一個有這個例子:

#include <Rcpp.h> 

// Enable C++11 via this plugin (Rcpp 0.10.3 or later) 
// [[Rcpp::plugins(cpp11)]] 

// [[Rcpp::export]] 
int useAuto() { 
    auto val = 42;  // val will be of type int 
    return val; 
} 

它有你需要的一切,包括插件添加所需-std=c++11切換到您的編譯器調用的解釋。

注意:我已經告訴過你在this answerRcpp Gallery。注意2:當您在上面的搜索框中使用字符串(如[rcpp] c++11)在StackOverflow中搜索時,您還會得到124個結果。

+0

我讀過你提到的所有答案,但也許我錯過了一些觀點。 C =」 的#include //啓用c通過這個插件++ 11(RCPP 0.10.3或更高版本) // [[RCPP ::插件(cpp11)]] // [[RCPP :: export]] int useAuto(){ auto val = 42; // val的類型爲int return val; } ' cppFunction(代碼= C) 我仍然有不可識別的命令行選項 '-std = C++ 11' 問題 – Shin

+0

正如我告訴你之前,請閱讀RCPP屬性的小插曲。它解釋了這一點。 –

+0

我已經解決了我在代碼開頭添加'// [[Rcpp :: plugins(cpp11)]]'的問題並解決了它。 – Shin