2012-07-26 20 views
6

Utilizo la opción GCC -Weffc++ en mi proyecto Qt. Para suprimir las advertencias de los encabezados de Qt agrego QMAKE_CXXFLAGS += -isystem $(QTDIR)\include.
Pero esto no suprime todas las advertencias, sigo teniendo advertencias molestas de QUuid clase porque $(QTDIR)\include\QtCore\quuid.h
archivo incluye
..\..\src\corelib\plugin\quuid.h.
He intentado añadir
QMAKE_CXXFLAGS += -isystem $(QTDIR)\src
y
QMAKE_CXXFLAGS += -isystem $(QTDIR)\src\corelib\plugin
pero no sirvió de nada. ¿Hay alguna manera de arreglar esto?Cómo suprimir las advertencias para el archivo incluido desde el encabezado

+0

que no recibe ninguna de las advertencias de los archivos '' Qt' con g ++ ', suponiendo que te refieres a 'g ++'? – cmannett85

+0

Sí, quiero decir 'g ++'. Tal vez depende de la versión de Qt o la plataforma? – WalterSullivan

+0

Publica tu versión y plataforma 'Qt'. Además, ¿compiló 'Qt' usted mismo, o vino prefabricado (una descarga de Windows, o de su administrador de paquetes)? – cmannett85

Respuesta

8

Debe suprimir cada directorio por separado. Ejemplo de mi proyecto:

QMAKE_CXXFLAGS += -isystem "$$[QT_INSTALL_HEADERS]/qt5" -isystem "$$[QT_INSTALL_HEADERS]/qt5/QtWidgets" \ 
        -isystem "$$[QT_INSTALL_HEADERS]/QtXml" -isystem "/usr/include/qt5/QtGui" \ 
        -isystem "$$[QT_INSTALL_HEADERS]/QtCore" 

O, para automatizar el anteriormente para los módulos Qt exactas que haya habilitado:

for (inc, QT) { 
    QMAKE_CXXFLAGS += -isystem \"$$[QT_INSTALL_HEADERS]/Qt$$system("echo $$inc | sed 's/.*/\u&/'")\" 
} 

# Still need this separately: 
QMAKE_CXXFLAGS += -isystem "$$[QT_INSTALL_HEADERS]/qt5" 
+0

¿Y de un proyecto ajeno a QT? – lalebarde

+0

QMAKE_CXXFLAGS es equivalente para CXXFLAGS en makefile. – dismine

Cuestiones relacionadas