我的项目使用
-Werror
将 GCC 11.3.0 g++ 警告转换为错误并停止构建。但是我们需要包含的第三方头文件会导致编译器发出一堆警告。
我希望有一种方法可以关闭那个 1 include 文件的
-Werror
。也许#pragma
我可以在调用该头文件之前和之后发出?
然而,似乎并非如此。我能找到的最好的方法是使用
#pragma GCC diagnostic ...
禁用单个警告,这将使我列出该头文件导致的所有警告。
真的是这样还是我错过了一些明显的东西?
编辑:
事实证明,一些警告/错误可以被禁用,但其他的则不能。例如,这可以删除已签名/未签名的警告:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wsign-compare"
#include <problematic_include.hpp>
#pragma GCC diagnostic pop
但这不起作用:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
#include <problematic_include.hpp>
#pragma GCC diagnostic pop
...删除有关
error: ignoring ‘#pragma _CVUI_COMPILE_MESSAGE ’ [-Werror=unknown-pragmas]
.的错误