[英]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.