在GCC中,如何使“-fpermissive”警告静音?

uklbhaso  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(597)

我包含了一个来自第三方库的文件,它引发了一个错误,可以降级为-fpermissive警告。但是因为我不想用这些警告“污染”我的编译日志,所以我想完全禁用这些消息。
到目前为止,我在包含该文件时使用诊断杂注设置了-fpermissive选项;比如:

#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版本也没有它)。
我能模仿这种行为吗?

nwnhqdif

nwnhqdif1#

tldr:在GCC 4.7之后,您无法关闭fpermissive输出。
只是在这里发布它,以便它具有更多的可见性:不幸的是,zwol的回答(虽然意图良好,并且可能对那些使用旧GCC版本的人有帮助)不适用于GCC的最新版本。从GCC 4.8及更高版本开始,您无法关闭fpermissive输出。o11c在他对OP的评论中提供了以下跟踪此错误的有用信息:

请注意,它处于“已解决无效”状态,因此无法关闭它是预期的行为,并且没有计划对其进行更改。

iaqfqrcu

iaqfqrcu2#

现在说这个可能有点晚了,但其中一个应该能满足你的要求:

#pragma GCC diagnostic ignored "-fpermissive"

字符串
或者是

#pragma GCC diagnostic ignored "-pedantic"


“忽略”是你完全压制诊断的方式,由于历史原因,-fpermissive的逆是-pedantic

相关问题