/w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (Warnstufe)
Gibt an, wie der Compiler Warnungen für eine bestimmte Kompilierung generiert.
Syntax
/W
/W0
/W1
/W2
/W3
/W4
/Wand
/Wv[:version]
/WX
Warnung "/w1"
Warnung "/w2"
Warnung "/w3"
Warnung "/w4"
Warnung "/wd"
/wewarnung
Warnung "/wo"
Bemerkungen
Die Warnungsoptionen geben an, welche Compilerwarnungen angezeigt werden sollen, und das Warnungsverhalten für die gesamte Kompilierung.
Die Warnungsoptionen und zugehörigen Argumente werden in den folgenden Tabellen beschrieben:
Option | BESCHREIBUNG |
---|---|
/W | Unterdrückt alle Compilerwarnungen. |
/W0 /W1 /W2 /W3 /W4 |
Gibt die Ebene der Warnungen an, die vom Compiler generiert werden sollen. Gültige Warnstufen reichen von 0 bis 4: /W0 unterdrückt alle Warnungen. Dies entspricht /w. /W1 zeigt Warnungen der Stufe 1 (schwerwiegend) an. /W1 ist die Standardeinstellung im Befehlszeilencompiler. /W2 zeigt Warnungen der Ebene 1 und 2 (signifikant) an. /W3 zeigt Warnungen der Ebenen 1, 2 und 3 (Produktionsqualität) an. /W3 ist die Standardeinstellung in der IDE. /W4 zeigt Warnungen der Ebene 1, Ebene 2 und Stufe 3 sowie alle Warnungen der Stufe 4 (Information), die standardmäßig nicht deaktiviert sind. Es wird empfohlen, diese Option zu verwenden, um lintähnliche Warnungen bereitzustellen. Für ein neues Projekt ist es möglicherweise am besten, /W4 in allen Kompilierungen zu verwenden. Diese Option sorgt dafür, dass möglichst wenige, schwer zu findende Codefehler vorhanden sind. |
/Wand | Zeigt alle Von /W4 angezeigten Warnungen und alle anderen Warnungen an, die /W4 nicht enthält, z. B. Warnungen, die standardmäßig deaktiviert sind. Weitere Informationen finden Sie unter Standardmäßig deaktivierte Compilerwarnungen. |
/Wv[:version] | Zeigt nur Warnungen an, die in der Version des Compilers und früheren Versionen eingeführt wurden. Sie können diese Option verwenden, um neue Warnungen im Code zu unterdrücken, wenn Sie zu einer neueren Version des Compilers migrieren. Damit können Sie Ihren vorhandenen Buildprozess verwalten, während Sie ihn beheben. Die optionale Parameterversion hat das Format nn[. mm[. bbbbb]], wobei nn die Hauptversionsnummer, mm die optionale Nebenversionsnummer und bbbbb die optionale Buildnummer des Compilers ist. Verwenden Sie beispielsweise /Wv:17 , um nur Warnungen anzuzeigen, die in Visual Studio 2012 (Hauptversion 17) oder früher eingeführt wurden. Das heißt, es werden Warnungen von jeder Version des Compilers angezeigt, die über eine Hauptversionsnummer von 17 oder weniger verfügt. Es unterdrückt Warnungen, die in Visual Studio 2013 (Hauptversion 18) und höher eingeführt wurden. Standardmäßig verwendet /Wv die aktuelle Compilerversionsnummer, und es werden keine Warnungen unterdrückt. Informationen dazu, welche Warnungen von der Compilerversion unterdrückt werden, finden Sie unter Compilerwarnungen nach Compilerversion. |
/WX | Behandelt alle Compilerwarnungen als Fehler. Für ein neues Projekt kann es am besten sein, /WX in allen Kompilierungen zu verwenden. Durch das Auflösen aller Warnungen wird sichergestellt, dass möglichst wenige, schwer zu findende Codefehler vorhanden sind. Der Linker verfügt auch über die Option /WX . Weitere Informationen finden Sie unter /WX (Linkerwarnungen als Fehler behandeln). |
Die folgenden Optionen schließen sich gegenseitig aus. Die letzte Option, die in dieser Gruppe angegeben wird, ist die angewendete:
Option | BESCHREIBUNG |
---|---|
/w1nnnn /w2nnnn /w3nnnn /w4nnnn |
Legt die Warnstufe für die von nnnnn angegebene Warnungsnummer fest. Mit diesen Optionen können Sie das Compilerverhalten für diese Warnung ändern, wenn eine bestimmte Warnstufe festgelegt ist. Sie können diese Optionen in Kombination mit anderen Warnungsoptionen verwenden, um Ihre eigenen Codierungsstandards für Warnungen zu erzwingen, anstatt die standardbasierten, die von Visual Studio bereitgestellt werden. Beispielsweise bewirkt /w34326 , dass C4326 als Warnung der Stufe 3 anstelle von Ebene 1 generiert wird. Wenn Sie sowohl die Option /w34326 als auch die Option /W2 kompilieren, wird die Warnung C4326 nicht generiert. |
/wdnnnn | Unterdrückt die Compilerwarnung, die von nnnn angegeben wird. Beispielsweise unterdrückt /wd4326 die Compilerwarnung C4326. |
/wennnn | Behandelt die Compilerwarnung, die von nnnn angegeben wird, als Fehler. Beispielsweise bewirkt /we4326 , dass die Warnungsnummer C4326 vom Compiler als Fehler behandelt wird. |
/wonnnn | Meldet die Compilerwarnung, die von nnnn angegeben wird, nur einmal. Beispielsweise bewirkt /wo4326 , dass die Warnung C4326 nur einmal gemeldet wird, wenn sie vom Compiler zum ersten Mal erkannt wird. |
Wenn Sie beim Erstellen eines vorkompilierten Headers Warnungsoptionen verwenden, werden diese Einstellungen beibehalten. Wenn Sie den vorkompilierten Header verwenden, werden diese Warnungsoptionen wieder wirksam. Um die vorkompilierten Headerwarnungsoptionen zu überschreiben, legen Sie eine weitere Warnungsoption in der Befehlszeile fest.
Sie können eine #pragma Warnungsdirektive verwenden, um die Warnungsebene zu steuern, die zur Kompilierzeit in bestimmten Quelldateien gemeldet wird.
Warnungs-Pragma-Anweisungen im Quellcode sind von der Option /w nicht betroffen.
Die Dokumentation zu Buildfehlern beschreibt die Warnungen und Warnstufen und gibt an, warum bestimmte Anweisungen möglicherweise nicht wie beabsichtigt kompiliert werden.
So legen Sie die Compileroptionen in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).
Um die Optionen /W0, /W1, /W2, /W3, /W4, /Wall, /Wv, /WX oder /WX- festzulegen, wählen Sie Konfigurationseigenschaften>C/C++>Allgemein aus.
Um die Optionen /W0, /W1, /W2, /W3, /W4 oder /Wall festzulegen, ändern Sie die Warnstufe-Eigenschaft .
Um die Optionen /WX oder /WX - festzulegen, ändern Sie die Eigenschaft Warnungen als Fehler behandeln .
Um die Version für die Option /Wv festzulegen, geben Sie die Compilerversionsnummer in der Warning Version-Eigenschaft ein.
Um die Optionen /wd oder /we festzulegen, wählen Sie die Eigenschaftenseite Konfigurationseigenschaften>C/C++>Erweitert aus.
Um die Option /wd festzulegen, wählen Sie das Dropdown-Steuerelement Bestimmte Warnungen deaktivieren und dann Bearbeiten aus. Geben Sie im Dialogfeld Bestimmte Warnungen deaktivieren im Bearbeitungsfeld die Warnungsnummer ein. Um mehrere Warnungen einzugeben, trennen Sie die Werte mithilfe eines Semikolons (;). Wenn Sie beispielsweise C4001 und C4010 deaktivieren möchten, geben Sie 4001;4010 ein. Wählen Sie OK aus, um die Änderungen zu speichern und zum Dialogfeld Eigenschaftenseiten zurückzukehren.
Um die Option /we festzulegen, wählen Sie das Dropdownsteuerelement Bestimmte Warnungen als Fehler behandeln aus, und wählen Sie dann Bearbeiten aus. Geben Sie im Dialogfeld Bestimmte Warnungen als Fehler behandeln im Bearbeitungsfeld die Warnungsnummer ein. Um mehrere Warnungen einzugeben, trennen Sie die Werte mithilfe eines Semikolons (;). Wenn Sie z. B. C4001 und C4010 als Fehler behandeln möchten, geben Sie 4001;4010 ein. Wählen Sie OK aus, um die Änderungen zu speichern und zum Dialogfeld Eigenschaftenseiten zurückzukehren.
Um die Option /wo festzulegen, wählen Sie die Eigenschaftenseite Konfigurationseigenschaften>C/C++>Command Line aus. Geben Sie die Compileroption in das Feld Zusätzliche Optionen ein.
Klicken Sie auf OK, um die Änderungen zu speichern.
So legen Sie die Compileroption programmgesteuert fest
- Siehe WarningLevel, WarnAsError, DisableSpecificWarnings und AdditionalOptions.
Weitere Informationen
MSVC-Compileroptionen
Befehlszeilensyntax des MSVC-Compilers