2014-06-29 50 views
6

我正在一個項目中使用新的C++ 11標準。 因此,庫中很少包含頭文件現在會生成警告-Wliteral-suffix,我會爲此包含該警告。抑制特定包含標題的g ++警告「-Wliteral-suffix」

我已經找到了,使用編譯指示一個簡單的解決方案,但它不爲我

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

運行具有'-fdiagnostics-show-option'的GCC查看是否可以禁用該警告;它可能只是因爲GCC阻止你禁用它。 – slugonamission

+0

看起來像[bug](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61653) –

回答

7

我認爲你必須使用正好相反的:-Wno-literal-suffix。我對這個版本的問題也比舊的4.7.2(最好)要多。