2012-07-26 11 views
6

Uso l'opzione GCC -Weffc++ nel mio progetto Qt. Per sopprimere gli avvisi dalle intestazioni Qt aggiungo QMAKE_CXXFLAGS += -isystem $(QTDIR)\include.
Ma questo non sopprime tutti gli avvertimenti, ho ancora ottenere avvisi fastidiosi da QUuid classe perché $(QTDIR)\include\QtCore\quuid.h
file include
..\..\src\corelib\plugin\quuid.h.
Ho provato ad aggiungere
QMAKE_CXXFLAGS += -isystem $(QTDIR)\src
e
QMAKE_CXXFLAGS += -isystem $(QTDIR)\src\corelib\plugin
ma non ha aiutato. C'è un modo per risolvere questo problema?Come sopprimere gli avvisi per il file incluso dall'intestazione

+0

non ho ricevuto alcun avviso da 'file Qt' con' 'g ++, Supponendo che tu intenda 'g ++'? – cmannett85

+0

Sì, voglio dire 'g ++'. Forse dipende dalla versione o dalla piattaforma Qt? – WalterSullivan

+0

Pubblica la tua versione e piattaforma 'Qt'. Inoltre, hai costruito 'Qt' da solo, o è stato pre-creato (un download di Windows o dal tuo gestore di pacchetti)? – cmannett85

risposta

8

È necessario sopprimere ogni directory separatamente. Esempio dal mio progetto:

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" 

Oppure, per automatizzare la precedenza per l'esatto moduli Qt abilitati:

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

E da un progetto non di QT? – lalebarde

+0

QMAKE_CXXFLAGS è equivalente per CXXFLAGS nel makefile. – dismine

Problemi correlati