2012-07-26 11 views
6

Ich verwende GCC -Weffc++ Option in meinem Qt-Projekt. Um Warnungen von Qt-Headern zu unterdrücken, füge ich QMAKE_CXXFLAGS += -isystem $(QTDIR)\include hinzu.
Aber diese Unterdrückung nicht alle Warnungen, erhalte ich immer noch ärgerlich Warnungen von Klasse QUuid weil $(QTDIR)\include\QtCore\quuid.h
Datei
..\..\src\corelib\plugin\quuid.h enthält.
Ich versuchte
QMAKE_CXXFLAGS += -isystem $(QTDIR)\src
und
QMAKE_CXXFLAGS += -isystem $(QTDIR)\src\corelib\plugin
hinzufügen, aber es hat nicht geholfen. Gibt es eine Möglichkeit, das zu beheben?So unterdrücken Sie Warnungen für die Datei aus dem Header

+0

Ich bekomme keine Warnungen von 'Qt' Dateien mit' g ++ ', Angenommen du meinst 'g ++'? – cmannett85

+0

Ja, ich meine 'g ++'. Vielleicht hängt es von der Qt Version oder Plattform ab? – WalterSullivan

+0

Veröffentlichen Sie Ihre 'Qt' Version und Plattform. Haben Sie 'Qt' selbst erstellt, oder kam es bereits vorgefertigt (ein Windows-Download oder von Ihrem Paketmanager)? – cmannett85

Antwort

8

Sie müssen jedes Verzeichnis einzeln unterdrücken. Beispiel aus meinem Projekt:

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" 

Oder die oben für die genaue Qt-Module automatisieren Sie aktiviert haben:

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

Und von einem Nicht-QT-Projekt? – lalebarde

+0

QMAKE_CXXFLAGS es ist gleichbedeutend für CXXFLAGS in Makefile. – dismine

Verwandte Themen