我正在开发一个项目,我使用新的c ++ 11标准。
因此,来自库的少量include-header现在会生成警告-Wliteral-suffix
,我会为此包含这些警告。
我找到了一个使用pragma的简单解决方案,但它对我不起作用
How to suppress GCC warnings from library headers?
这是我目前的代码:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wliteral-suffix"
#include <pylon/PylonBase.h>
#include <pylon/InstantCamera.h>
#include <pylon/TlFactory.h>
#pragma GCC diagnostic pop
库生成的所有当前警告如下所示:
/opt/pylon3/genicam/library/CPP/include/Base/GCException.h:272:105: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
我正在使用gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
答案 0 :(得分:8)
我认为你必须恰恰相反:-Wno-literal-suffix
。我对这个版本的问题也比旧的4.7.2(最好的)还要多。
答案 1 :(得分:0)
如果您从系统标题中收到警告,那么您应该将其包括在内:
# Makefile
CPPFLAGS += -isystem/path/to/python/prefix
参考文献:
答案 2 :(得分:0)
关闭警告/错误的选项是特定于编译器的。假设你必须支持 GCC 和 Clang,选项是
-Wno-literal-suffix
-Wno-reserved-user-defined-literal
(或 -Wno-error=reserved-user-defined-literal
,如果您想继续看到警告消息)来源:https://sourcecodeartisan.com/2021/03/06/invalid-suffix-on-literal.html