piw*_*iwi 22 c++ gcc warnings pragma
我包含来自第三方库的文件,该文件引发了一个错误,可以将其降级为警告-fpermissive.但是因为我不想用这些警告"污染"我的编译日志,所以我想完全禁用这些消息.
到目前为止,我在包含文件时-fpermissive使用诊断编译指示设置选项; 就像是:
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-fpermissive"
#include <third-party-file.h>
#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)
由于gcc通常提供-f标志的"正面"和"负面"版本,我想忽略了"不允许"的功能:
#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>
Run Code Online (Sandbox Code Playgroud)
但似乎没有-fpermissive标志的"负面"版本(我正在使用gcc 4.6.3;但即使版本4.7.0 也没有它).
我有机会模仿这种行为吗?谢谢!
zwo*_*wol 12
这可能有点晚了,但其中一个应该做你想要的:
#pragma GCC diagnostic ignored "-fpermissive"
Run Code Online (Sandbox Code Playgroud)
要么
#pragma GCC diagnostic ignored "-pedantic"
Run Code Online (Sandbox Code Playgroud)
"忽略"是你如何压制诊断完全和逆-fpermissive是-pedantic,由于历史的原因.
tldr:GCC 4.7后无法关闭闪烁输出.
只是在这里发布它,因此它具有更高的可见性:不幸的是,zwol的答案(虽然用心良好,并且可能对那些使用较旧GCC版本的人有帮助)但不适用于更新版本的GCC.从GCC 4.8及更高版本,您无法关闭闪烁输出.o11c在他对OP的评论中有助于提供以下跟踪此问题的错误:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81787
请注意,它处于"已解决的无效"状态,因此无法将其关闭是预期的行为,并且没有计划更改它.
| 归档时间: |
|
| 查看次数: |
35159 次 |
| 最近记录: |