2014-06-29 24 views
6

İçinde yeni C++ 11 standardını kullandığım bir proje üzerinde çalışıyorum. Bundan dolayı, bir kitaplıktaki birkaç başlıkları şimdi içerdiği için bu değeri kaldıracağım -Wliteral-suffix uyarısını üretiyor.g ++ uyarısı "-Wliteral-sonek" için özel olarak başlıkları içeren üstbilgi

Bunu kullanarak pragmas için kolay bir çözüm bulduk, ama bana

How to suppress GCC warnings from library headers?

Bu benim geçerli kod için çalışmıyor: tarafından oluşturulan

#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 

Geçerli tüm Uyarılar kitaplık şöyle görünür:

/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

Çalıştır -Fdiagnostics-show-option ile GCC Bu uyarının devre dışı bırakılıp bırakılamayacağını görmek için; GCC'nin bunu devre dışı bırakmanızı önleyebilir. – slugonamission

+0

Bir [böcek] gibi görün (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61653) –

cevap

7

Sadece bunun tam tersini kullanmalısınız: -Wno-literal-suffix. Ayrıca bu versiyonda eski 4.7.2 (en iyi) ile daha fazla sorun yaşıyorum. Eğer sistemden başlıklarını uyarıları alıyorsanız