2017-03-15 6 views
1

私はいくつかの新しいC++ 17の機能を試してみるために、gcc 7を自作しました。C++ 17の機能に対してgccの警告を消す方法はありますか?

ビルドコマンドラインで-std = C++ 1zをすでに指定していて、特定の機能が使用可能であると言って、100行の警告が表示されました。 gnu ++ 1zも試しました)

私はこの警告を黙らせたいと思います。 clang 4を使用する場合、-Wno-C++ 1z-extensions

のオプションがありましたが、このオプションはgccによって認識されません。

+4

に関連している '-std = C++ 1z'? –

+2

コードでC++ 17の機能を使用する場合、C++ 17コンパイラを使用する必要があることに注意してください。どうやら、 '-std = C++ 1z'を指定することでこれを行います。 "警告"を黙らせようとするのは方法ではありません - ある言語のコンパイラを別の言語でスローし、コンパイラには理解できないすべてのことを止めるように伝えるのは悪い考えです。 – skyking

+0

@VittorioRomeo私は既に-std = C++ 1zと指定していますが、警告は消えません。 –

答えて

4

私の根本原因は私の問題です。

私は-std = C++ 17をcmakeと設定しているからです。 Qt5も含まれています。 Qt5の設定は、my -std = C++ 17を上書きしました。 make VERBOSE = 1では、-std = C++ 17と-std = C++ 14の両方を見ることができました。

これはコンパイラを混乱させます。

問題は、あなたが使用してコンパイルすることはできませんhttps://gitlab.kitware.com/cmake/cmake/issues/16468

+0

同じ問題があった場合、QTに関連するだけでなく、異なる値で-stdフラグを2回指定したときに一般的に起こります。私はそれが2つの値の小さい方を解析していると思います。 – Dado

関連する問題