Es gibt einige Dateien in meinem iOS-Projekt, die einige Warnungen enthalten, und ich möchte diese Warnungen ignorieren. Ich möchte keine Warnungen im gesamten Projekt deaktivieren (weiß, wie das geht), sondern nur einige bestimmte Dateien. Gibt es eine Möglichkeit, alle Warnungen aus einer bestimmten Datei vollständig zu ignorieren?
Ich verwende LLVM 3.0 und Clang auf Xcode 4.2.
xcode
clang
compiler-warnings
Bobbypage
quelle
quelle
Antworten:
Wenn Sie nur clang verwenden, sollten Sie die Pragma-Syntax für die von Ihnen verwalteten Quellen verwenden (vorausgesetzt, es ist unmöglich, die Warnung durch entsprechende Änderung des Programms zu entfernen).
Hier ist die Syntax:
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wmultichar" char b = 'df'; // no warning. #pragma clang diagnostic pop
Wenn es sich um Programme handelt, die Sie nicht ändern und nicht warten können, sollten Sie die Warnung (en) angeben, die für die Datei deaktiviert werden sollen, und nicht alle. Um alle zu deaktivieren, können Sie das Argument pro Datei hinzufügen
-w
. Quellen ändern sich und einige Warnungen gelten (oder gelten nicht) mit unterschiedlichen Build-Einstellungen. Die Nachrichten von clang können Ihnen sagen, welches Flag der generierten Warnung entspricht.So ändern Sie mit Xcode die Build-Flags einer Datei:
quelle
Ich habe ein Projekt geerbt, das viel 320 Code enthielt, und diese Codebasis warf mehrere Warnungen und statische Analysefehler auf mich, die ich nicht beheben wollte, da ich diesen Code in naher Zukunft aus dem Projekt entfernen werde.
Sie können die Warnungen des statischen Analysators für eine bestimmte Datei deaktivieren, indem Sie das folgende Compiler-Flag einfügen:
-Xanalyzer -analyzer-disable-all-checks
Sie können dies mit -w kombinieren, um Warnungen auch für diese Datei zu deaktivieren. Dadurch konnte ich die Neuentwicklung vorantreiben, ohne mit den etwa 30 Warnungen belästigt werden zu müssen, die von dieser Codebasis generiert wurden.
Verwenden Sie die Anweisungen von oben: So ändern Sie mit Xcode die Build-Flags einer Datei:
quelle
-Xanalyzer
,-w
und-analyzer-disable-checker
zu tun.Mit Hilfe von Justins Antwort machen Sie das so
1. Suchen Sie den Namen der Warnung.
In meinem Fall ist es
conversion
2. Fügen Sie eine Erstellungsphase für das Compiler-Flag pro Datei hinzu
Verwenden Sie den Filter, um den Namen der Datei in Kompilierungsquellen zu finden. Geben Sie
-Wno-[error name]
z-Wno-conversion
quelle
Sie können ein bestimmtes Ziel auswählen -> Einstellungen erstellen, nach Alle Warnungen sperren suchen und auf JA setzen. Dadurch werden Warnungen auf diesem Ziel deaktiviert. Dies kann nützlich sein, wenn Sie Code wie JSONKit mit Cocoapods verwenden und nicht sehen möchten, wie der Compiler über Warnungen weint :)
quelle