我包含一个来自第三方库的文件,该文件引发了一个可以降级为-fpermissive
的警告的错误。但是因为我不想用这些警告“污染”我的编译日志,所以我想完全禁用这些消息。在gcc中,如何将-fpermissive警告静音?
到目前为止,我在包含文件时将-fpermissive
选项设置为diagnostic pragma;是这样的:
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-fpermissive"
#include <third-party-file.h>
#pragma GCC diagnostic pop
由于GCC通常提供-f
标志既“积极”和“消极”的版本,我想大概忽略了“不许可”的特点:
#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>
但有似乎并不是-fpermissive
标志的“负面”版本(我正在使用gcc 4.6.3;但是甚至是版本4.7.0 does not have it)。
我可以模仿这种行为吗?谢谢!
'-fno-permissive'是默认值。 '-fpermissive',并且没有任何标志的“负面”和“正面”版本。这就是说,你不应该使用这个。修复代码!即使它不是你的。 – rubenvb
-fno-permissive不是默认值,因为该选项不存在。但是,如果它确实存在,它的行为将是默认设置。我可以修复代码,但它看起来更像是一种解决方法......无论如何,修复整个包含的头文件并不是真正的选择。 – piwi
这正是我的意思。 '-fpermissive'是这里的黑客/解决方法。反正我们在谈论什么代码。也许有更好的选择。 – rubenvb