我正在尝试编译在现有代码库中引入-Werror
标志。我遇到的一个问题是,在某些地方#warning
用于显示信息性消息。这些不应被视为错误。
一种解决方案是使用#pragma message
代替,但旧版本的gcc似乎不支持此功能。 (我们的构建服务器使用gcc 4.1.2)。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:4)
在gcc-4.6及更高版本中,您可以使用-Wno-error=cpp
。至少与Lion及以后发布的clang,您可以使用-Wno-error=#warnings
。但是由于你的构建服务器使用的是古老的gcc,你可能在那里运气不好。
通常,传递-fdiagnostics-show-option以显示警告输出,如:
test.cc:1:2: warning: #warning hello [-Wcpp]
告诉你一个控制警告的警告标志。在gcc> = 4.6和clang中,这是默认值,因此知道传递它可能不再太有用了。
答案 1 :(得分:1)
本地停用-Werror
对#warning
的效果,如下所示:
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-Wcpp"
#warning Informative message: everything is nice and good!!!
#pragma GCC diagnostic pop
这种方法的好处是你仍然可以在代码的其他地方引发#warning
错误。