當試圖編譯RCPP 12.6 G ++ 4.8.4,我得到了以下錯誤消息:無法編譯RCPP 0.12.6下[R
error: expected initializer before ‘stop’
inline void noret stop(const std::string& message)
似乎無法找到對任何事情屬性NORET
。
當試圖編譯RCPP 12.6 G ++ 4.8.4,我得到了以下錯誤消息:無法編譯RCPP 0.12.6下[R
error: expected initializer before ‘stop’
inline void noret stop(const std::string& message)
似乎無法找到對任何事情屬性NORET
。
NORET
宏由R定義 - 但僅限於R的最新版本。由於我們(和CRAN)執行了所有測試並使用最新版本進行構建,因此滑行。
此問題已被報告爲issue #512(以及在#516中也是如此)。它已經在主分支以及臨時版本0.12.6.1中解決,您可以從Rcpp drat存儲庫中獲得該版本。
否則,只需添加(空)#define NORET
或更好的是,更新您的R版本。
謝謝。這解決了它! –
它可能是[[noreturn]]屬性(或它的一些舊版本)的宏http://en.cppreference.com/w/cpp/language/attributes我想你會需要一個更新的g ++ –
關閉。它是一個缺失的R的更新版本,它在其頭文件中定義了它。我們沒有檢查這個,現在自己定義,如果'#ifndef NORET'。編譯器很好。 –
要添加更多的牛肉:R-devel(又名R 3.4。*),R-release(現在又名R 3.3.1)和R-oldrel(又名R 3.2.5)都有效。但是如果你回到R 3.1。*或者更舊的版本,它就會失敗。 –