2014-06-29 9 views
6

Sto lavorando a un progetto, in cui utilizzo il nuovo standard C++ 11. Per questo motivo, alcune inclusioni di intestazione da una libreria ora generano l'avviso -Wliteral-suffix, che vorrei sopprimere per ciò che include.Sopprimere l'avviso g ++ "-Wliteral-suffix" per specifiche intestazioni specifiche

ho trovato una soluzione facile per quel che utilizzano pragma, ma non funziona per me

How to suppress GCC warnings from library headers?

Questo è il mio codice corrente:

#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 

Tutti gli avvisi generati da correnti la libreria ha il seguente aspetto:

/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] 

I am u cantare gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)

+0

Run GCC con '-fdiagnostics-show-option' per vedere se tale avviso può essere disabilitato; potrebbe semplicemente essere che GCC ti impedisce di disabilitarlo. – slugonamission

+0

Sembra un [bug] (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61653) –

risposta

7

Penso che sia necessario utilizzare esattamente il contrario: -Wno-literal-suffix. Inoltre sto riscontrando più problemi con questa versione rispetto al vecchio 4.7.2 (il migliore).

Problemi correlati