[英]how to silence gcc warning against c++17 features?
我自己構建了 gcc 7 來嘗試一些新的 c++17 功能。
當我構建代碼時,我看到了數百行警告,說某些功能僅在 -std=c++1z 時可用(我已經在構建命令行中指定了 -std=c++1z 並且我嘗試了 gnu++ 1z也是)
我想消除這個警告。 使用 clang 4 時,有一個選項 -Wno-c++1z-extensions
但是這個選項不被 gcc 識別。
我有根導致我的問題的原因。
這是因為我用cmake設置了-std = c ++ 17。 我也包括了Qt5。 Qt5設置覆蓋了我的-std = c ++ 17。 使用make VERBOSE = 1,我可以看到-std = c ++ 17和-std = c ++ 14。
這會混淆編譯器。
gcc 12 支持抑制特定c++版本警告的選項
-Wno-c++17-extensions
(適用於 gcc12 和 clang)
參考 gcc/clang 編譯選項:
https://docs.adacore.com/live/wave/gcc-12.x/html/gcc/gcc.html#Warning-Options
https://releases.llvm.org/12.0.0/tools/clang/docs/DiagnosticsReference.html#diagnostic-flags
但最好通過 flag 支持 c++17 特性:
-std=c++17
-std=gnu++17
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.