抑制g ++警告" -Wliteral-suffix"对于特定的包含标题

时间:2014-06-29 08:51:37

标签: c++ c++11 g++ compiler-warnings suppress-warnings

我正在开发一个项目,我使用新的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)

3 个答案:

答案 0 :(得分:8)

我认为你必须恰恰相反:-Wno-literal-suffix。我对这个版本的问题也比旧的4.7.2(最好的)还要多。

答案 1 :(得分:0)

如果您从系统标题中收到警告,那么您应该将其包括在内:

# Makefile

CPPFLAGS += -isystem/path/to/python/prefix

参考文献:

答案 2 :(得分:0)

关闭警告/错误的选项是特定于编译器的。假设你必须支持 GCC 和 Clang,选项是

  • 海湾合作委员会:-Wno-literal-suffix
  • Clang:-Wno-reserved-user-defined-literal(或 -Wno-error=reserved-user-defined-literal,如果您想继续看到警告消息)
  • MSVC:???

来源:https://sourcecodeartisan.com/2021/03/06/invalid-suffix-on-literal.html