Meine Frage lautet also: Wie baue ich mein QT-Projekt, ohne die Warnungen komplett abzuschalten (oder um Millionen von zwecklosen zu durchsuchen, um meine eigenen zu finden)? Kann ich Warnungen nur für die QT-Header unterdrücken?
Vor einigen Monaten habe ich ein QT-Projekt in QT-Creator gestartet. Zu der Zeit benutzte ich gcc 4.6. Nach ein bisschen anderen Prioritäten haben sich die Dinge durchgesetzt und ich fand mich ohne Zeit, um an dem Projekt bis jetzt zu arbeiten. In der Zwischenzeit wechselte ich zu Klängen. Als ich mein QT-Projekt so konfiguriert habe, dass es clang verwendet - welches Projekt ohne Warnungen in g ++ kompiliert wurde - hat es innerhalb der QT-Header selbst 263 Warnungen generiert. Hauptsächlich Zeichenumwandlung und unerreichbarer Code.
Um das zu umgehen, habe ich -isystem / pfad / zu / QT / include / dir basierend auf dieser Eintrag im Clang-Benutzerhandbuch , aber es schien nichts zu bewirken. Obwohl ich nicht sicher bin, denke ich, dass es daran liegt, dass mein Code #include
die QT-Header nach Namen und nicht nach Verzeichnissen darstellt. Während die Lösung darin wäre, jeden einzelnen verwendeten QT-Header manuell aufzulisten (habe es nicht versucht), würde es bedeuten, dass ich ihn jedes Mal aktualisieren müsste, wenn ich QT hochrüste oder einen neuen Header verwende. Sicherlich gibt es eine bessere Lösung.
Wie hier gefragt, wird der eigentliche Kompilierbefehl ausgeführt:
%Vor%Ich verwende:
Ich werde meine eigene Frage beantworten, denn wie sich herausstellt, handelt es sich in diesem Fall um eine besondere Umwelteigenschaft.
Ich habe zwei Kopien der QT-Bibliotheken auf meiner Entwicklungsmaschine, eine systemweit und eine projektspezifisch (im VCS enthalten). In den Projektbibliotheken ist qmake nicht enthalten, daher habe ich mein System qmake verwendet, das einen anderen Pfad angehängt hat, als ich in meine -isystem-Spezifikationen aufgenommen habe. Um das zu lösen, habe ich
hinzugefügt %Vor%zu qmake.conf (in qt / mkspecs / nicht unterstützt / linux-clang /)
Da jemand anderes im Projekt qmake dazu gebracht hat, die Projektbibliotheken überall sonst zu benutzen.
Für diejenigen, die auf diese Frage mit einem allgemeineren Problem stoßen als der Autor. Versuchen Sie Folgendes einzufügen:
%Vor% in Ihrer .pro-Datei.
Zusätzlich vermeiden Sie includes wie #include <QtCore/QtCore>
Schreiben von #include <QtCore>
stattdessen
Dies gezähmt qt ziemlich effizient für mich.
Siehe auch diese Quelle