我们使用带有-Wall -Werror选项的gcc构建我们的项目。 来自外部标头的警告被编译指示抑制,如下所示:
#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
已启用我们的代码答案 0 :(得分:0)
最后,我们选择在构建时进行修补。它有点hacky但它允许我们的项目完好无损。
补丁已添加到cmake build:
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