2016-07-25 8 views
1

下Rcpp 0.12.6をコンパイルすることができません:グラム++ 4.8.4でRcpp 12.6をコンパイルしようとすると、私は次のエラーメッセージが出ていR

error: expected initializer before ‘stop’

inline void noret stop(const std::string& message)

は上の何かを見つけるように見えることはできません属性NORET

+0

これは恐らく[[noreturn]]属性(またはその古いバージョン)のマクロですhttp://en.cppreference.com/w/cpp/language/attributesもっと最新のものが必要でしょうg ++ –

+0

閉じる。これは、ヘッダの1つで定義されているRの更新版です。これを確認することに失敗し、 '#ifndef NORET'があればそれを自分で定義します。コンパイラは正常です。 –

+0

R-devel(別名R 3.4。*)、R-release(今は別名R 3.3.1)、R-oldrel(別名R 3.2.5)がすべて機能します。しかし、もしあなたがR 3.1。*かそれ以上に戻ると失敗します。 –

答えて

5

NORETマクロはRで定義されていますが、Rの最新バージョンでのみ使用されます。私たち(およびCRAN)はすべてのテストを行い、最近のバージョンでビルドするので、これは滑り落ちました。

この問題は既にissue #512(または#516)と報告されています。これはすでにマスタブランチと、暫定リリース0.12.6.1で対処されており、Rcpp dratリポジトリから入手できます。

それ以外の場合は、空の#define NORETを追加するか、R版を更新することをお勧めします。

+0

ありがとうございます。それはそれを修正! –

関連する問題