/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
/Wall
/Wv[:version]
/WX
/w1-Warnung
/w2-Warnung
/w3-Warnung
/w4-Warnung
/wd-Warnung
/we-Warnung
/wo-Warnung
Hinweise
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. Es entspricht /w. /W1 zeigt Warnungen der Ebene 1 (schwerwiegende) an. /W1 ist die Standardeinstellung im Befehlszeilencompiler. /W2 zeigt Warnungen der Ebene 1 und Ebene 2 (signifikant) an. /W3 zeigt Warnungen der Ebene 1, Ebene 2 und Stufe 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 Ebene 4 (Informationswarnungen) an, die standardmäßig nicht deaktiviert sind. Es wird empfohlen, diese Option zum Bereitstellen von Lint-ähnlichen Warnungen zu verwenden. Für ein neues Projekt kann es am besten sein, /W4 in allen Kompilierungen zu verwenden. Mit dieser Option können Sie möglichst wenige schwer zu findende Codefehler sicherstellen. |
/Wall | Zeigt alle Warnungen an, die von /W4 angezeigt werden, und alle anderen Warnungen, die /W4 nicht enthält, z. B. Warnungen, die standardmäßig deaktiviert sind. Weitere Informationen finden Sie unter Compilerwarnungen, die standardmäßig deaktiviert sind. |
/Wv[:version] | Zeigt nur Warnungen an, die in der Versionscompilerversion und früheren Versionen eingeführt wurden. Mit dieser Option können Sie neue Warnungen im Code unterdrücken, wenn Sie zu einer neueren Version des Compilers migrieren. Sie können ihren vorhandenen Buildprozess verwalten, während Sie ihn beheben. Die optionale Parameterversion verwendet das Format nn[.mm[.bbb]], wobei nn die Hauptversionsnummer ist, mm die optionale Nebenversionsnummer ist, und bbbbb ist die optionale Buildnummer des Compilers. Verwenden Sie z. B. "/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 mit einer Hauptversion von 17 oder weniger angezeigt. 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 die wenigen schwer zu findenden Codefehler am wenigsten zu finden sind. Der Linker verfügt auch über eine /WX-Option . Weitere Informationen finden Sie unter /WX (Linkerwarnungen als Fehler behandeln). |
Die folgenden Optionen schließen sich gegenseitig aus. Die letzte Option, die aus dieser Gruppe angegeben wird, ist die folgende:
Option | Beschreibung |
---|---|
/w1nnnn /w2nnnn /w3nnnn /w4nnnn |
Legt die Warnstufe für die von nnnn angegebene Warnungsnummer fest. Mit diesen Optionen können Sie das Compilerverhalten für diese Warnung ändern, wenn eine bestimmte Warnstufe festgelegt wird. Sie können diese Optionen in Kombination mit anderen Warnoptionen verwenden, um Ihre eigenen Codierungsstandards für Warnungen zu erzwingen, anstatt die Standardeinstellungen, die von Visual Studio bereitgestellt werden. Beispielsweise bewirkt /w34326, dass C4326 als Warnung der Ebene 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 durch nnnn angegeben wird. Beispielsweise unterdrückt /wd4326 die Compilerwarnung C4326. |
/wennnn | Behandelt die Compilerwarnung, die von nnnn als Fehler angegeben wird. Beispielsweise bewirkt "/we4326", dass die Warnungsnummer C4326 vom Compiler als Fehler behandelt wird. |
/wonnnn | Meldet die Compilerwarnung, die nur einmal durch nnn angegeben wird. Beispielsweise bewirkt "/wo4326", dass die Warnung C4326 nur einmal gemeldet wird, wenn der Compiler zum ersten Mal auftritt. |
Wenn Sie beim Erstellen eines vorkompilierten Headers Warnungsoptionen verwenden, werden diese Einstellungen beibehalten. Durch die Verwendung des vorkompilierten Headers werden dieselben Warnoptionen erneut wirksam. Um die vorkompilierten Headerwarnungsoptionen außer Kraft zu setzen, legen Sie eine weitere Warnungsoption in der Befehlszeile fest.
Sie können eine #pragma Warnungsdirektive verwenden, um die Warnungsstufe zu steuern, die zur Kompilierungszeit in bestimmten Quelldateien gemeldet wird.
Pragma-Warnungsdirektiven im Quellcode sind von der Option "/w " nicht betroffen.
In der Dokumentation zu Buildfehlern werden die Warnungen und Warnungsstufen beschrieben und angegeben, 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.
Ändern Sie die Eigenschaft "/W0", "/W1", "/W2", "/W3", "/W4" oder "/Wall", um die Eigenschaft "/W0", "/W1", "/W3", "/W4" oder "/Wall" festzulegen.
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 die Eigenschaft "Warnungsversion " ein.
Um die Optionen "/wd" oder "/we" festzulegen, wählen Sie die Konfigurationseigenschaftenseite>C/C++>Advanced aus.
Um die Option "/wd " festzulegen, wählen Sie das Dropdownsteuerelement "Bestimmte Warnungen deaktivieren" und dann " Bearbeiten" aus. Geben Sie im Bearbeitungsfeld im Dialogfeld "Bestimmte Warnungen deaktivieren" die Warnungsnummer ein. Wenn Sie mehrere Warnungen eingeben möchten, trennen Sie die Werte durch ein Semikolon (;). Wenn Sie z. B. C4001 und C4010 deaktivieren möchten, geben Sie "4001" ein; 4010. Wählen Sie "OK" aus, um Ihre Änderungen zu speichern und zum Dialogfeld "Eigenschaftenseiten " zurückzukehren.
Um die Option "/we " festzulegen, wählen Sie das Dropdownsteuerelement "Bestimmte Warnungen als Fehler behandeln" und dann " Bearbeiten" aus. Geben Sie im Bearbeitungsfeld im Dialogfeld "Bestimmte Warnungen als Fehler behandeln" die Warnungsnummer ein. Wenn Sie mehrere Warnungen eingeben möchten, trennen Sie die Werte durch ein Semikolon (;). Wenn Sie z. B. C4001 und C4010 als Fehler behandeln möchten, geben Sie "4001" ein; 4010. Wählen Sie "OK" aus, um Ihre Änderungen zu speichern und zum Dialogfeld "Eigenschaftenseiten " zurückzukehren.
Um die Option "/wo" festzulegen, wählen Sie die Konfigurationseigenschaftenseite>C/C++>-Befehlszeileneigenschaft aus. Geben Sie die Compileroption im 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.
Siehe auch
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile