![](/img/trans.png)
[英]gnu gcc How to suppress warning: ‘typedef’ was ignored in this declaration [enabled by default]
[英]gcc: suppress [enabled by default] warning from c++ code
我们使用gcc和-Wall -Werror选项构建我们的项目。 来自外部标头的警告被pragma抑制,如下所示:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#include <somelib/component/settings.h>
#pragma GCC diagnostic pop
在将外部版本升级到新版本之后,我们获得了新类型的警告来抑制:
error: inline function ‘...’ given attribute noinline [-Werror]
或者没有-Werror警告:
warning: inline function ‘...’ given attribute noinline [enabled by default]
似乎没有办法忽略它通过#pragma GCC诊断被忽略。
在这种情况下,在以下条件下可以做些什么?
-Werror
已启用我们的代码 最后,我们选择在构建时进行修补。 它有点hacky但它允许我们的项目完好无损。
补丁已添加到cmake构建中:
execute_process(COMMAND "patch" "-N" "header_to_patch.h" "header_to_patch.h.patch")
补丁文件准备了:
diff -u "original/header_to_patch.h" "fixed/header_to_patch.h" > header_to_patch.h.patch
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.