/w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (Niveau d’avertissement)

Spécifie comment le compilateur génère les avertissements pour une compilation donnée.

Syntaxe

/w
/W0
/W1
/W2
/W3
/W4
/Wall
/Wv[ :version]
/WX
Avertissement /w1
Avertissement /w2
Avertissement /w3
Avertissement /w4
/wdwarning
/wewarning
/wowarning

Notes

Les options d’avertissement spécifient les avertissements du compilateur à afficher et le comportement d’avertissement pour l’ensemble de la compilation.

Les options d’avertissement et les arguments associés sont décrits dans les tableaux suivants :

Option Description
/w Supprime tous les avertissements du compilateur.
/W0

/W1

/W2

/W3

/W4
Spécifie le niveau d’avertissements à générer par le compilateur. Les niveaux d’avertissement valides vont de 0 à 4 :
/W0 supprime tous les avertissements. C’est équivalent à /w.
/W1 affiche les avertissements de niveau 1 (grave). /W1 est le paramètre par défaut dans le compilateur de ligne de commande.
/W2 affiche les avertissements de niveau 1 et 2 (significatif).
/W3 affiche les avertissements de niveau 1, de niveau 2 et de niveau 3 (qualité de production). /W3 est le paramètre par défaut dans l’IDE.
/W4 affiche les avertissements de niveau 1, de niveau 2 et de niveau 3, ainsi que tous les avertissements de niveau 4 (informationnel) qui ne sont pas désactivés par défaut. Nous vous recommandons d’utiliser cette option pour fournir des avertissements de type lint. Pour un nouveau projet, il peut être préférable d’utiliser /W4 dans toutes les compilations. Cette option permet de garantir les moindres défauts de code difficiles à trouver.
/Wall Affiche tous les avertissements affichés par /W4 et tous les autres avertissements que /W4 n’inclut pas, par exemple les avertissements désactivés par défaut. Pour plus d’informations, consultez les avertissements du compilateur désactivés par défaut.
/Wv[ :version] Affiche uniquement les avertissements introduits dans la version du compilateur de version et les versions antérieures. Vous pouvez utiliser cette option pour supprimer de nouveaux avertissements dans le code lorsque vous migrez vers une version plus récente du compilateur. Il vous permet de gérer votre processus de génération existant pendant que vous les corrigez. La version facultative du paramètre prend la forme nn[.mm[.bbbbb]], où nn est le numéro de version principal, mm est le numéro de version secondaire facultatif, et bbbbb est le numéro de build facultatif du compilateur. Par exemple, utilisez /Wv :17 pour afficher uniquement les avertissements introduits dans Visual Studio 2012 (version majeure 17) ou une version antérieure. Autrement dit, il affiche des avertissements de n’importe quelle version du compilateur qui a un numéro de version majeure de 17 ou moins. Il supprime les avertissements introduits dans Visual Studio 2013 (version majeure 18) et versions ultérieures. Par défaut, /Wv utilise le numéro de version du compilateur actuel et aucun avertissement n’est supprimé. Pour plus d’informations sur les avertissements supprimés par version du compilateur, consultez avertissements du compilateur par version du compilateur.
/WX Considère tous les avertissements du compilateur comme des erreurs. Pour un nouveau projet, il peut être préférable d’utiliser /WX dans toutes les compilations. La résolution de tous les avertissements garantit les moindres défauts de code difficiles à trouver.

L’éditeur de liens a également une option /WX . Pour plus d’informations, consultez /WX (Traiter les avertissements de l’éditeur de liens comme des erreurs).

Les options suivantes s’excluent mutuellement les unes des autres. La dernière option spécifiée à partir de ce groupe est celle appliquée :

Option Description
/w1nnnn

/w2nnnn

/w3nnnn

/w4nnnn
Définit le niveau d’avertissement pour le numéro d’avertissement spécifié par nnnn. Ces options vous permettent de modifier le comportement du compilateur pour cet avertissement lorsqu’un niveau d’avertissement spécifique est défini. Vous pouvez utiliser ces options en combinaison avec d’autres options d’avertissement pour appliquer vos propres normes de codage pour les avertissements, plutôt que les options par défaut fournies par Visual Studio.

Par exemple, /w34326 entraîne la génération de C4326 sous la forme d’un avertissement de niveau 3 au lieu du niveau 1. Si vous compilez à l’aide de l’option /w34326 et de l’option /W2 , l’avertissement C4326 n’est pas généré.
/wdnnnn Supprime l’avertissement du compilateur spécifié par nnnn.

Par exemple, /wd4326 supprime l’avertissement du compilateur C4326.
/wennnn Traite l’avertissement du compilateur spécifié par nnnn comme une erreur.

Par exemple, /we4326 provoque le traitement du numéro d’avertissement C4326 comme une erreur par le compilateur.
/wonnnn Signale l’avertissement du compilateur spécifié par nnnn une seule fois.

Par exemple, /wo4326 provoque l’avertissement C4326 à être signalé une seule fois, la première fois qu’il est rencontré par le compilateur.

Si vous utilisez des options d’avertissement lorsque vous créez un en-tête précompilé, ces paramètres sont conservés. L’utilisation de l’en-tête précompilé place à nouveau ces mêmes options d’avertissement. Pour remplacer les options d’avertissement d’en-tête précompilées, définissez une autre option d’avertissement sur la ligne de commande.

Vous pouvez utiliser une directive d’avertissement #pragma pour contrôler le niveau d’avertissement signalé au moment de la compilation dans des fichiers sources spécifiques.

Les directives pragma d’avertissement dans le code source ne sont pas affectées par l’option /w .

La documentation sur les erreurs de build décrit les avertissements et les niveaux d’avertissement, et indique pourquoi certaines instructions peuvent ne pas être compilées à l’intention.

Pour définir les options du compilateur dans l’environnement de développement Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.

  2. Pour définir les options /W0, /W1, /W2, /W3, /W4, /Wall, /Wv, /WX ou /WX- , sélectionnez Propriétés>de configuration C/C++>Général.

    • Pour définir les options /W0, /W1, /W2, /W3, /W4 ou /Wall, modifiez la propriété Niveau d’avertissement.

    • Pour définir les options /WX ou /WX- , modifiez la propriété Traiter les avertissements en tant que propriété Errors .

    • Pour définir la version de l’option /Wv , entrez le numéro de version du compilateur dans la propriété Version d’avertissement.

  3. Pour définir les options /wd ou /we, sélectionnez la page de propriétés de configuration>C/C++>Advanced.

    • Pour définir l’option /wd , sélectionnez le contrôle déroulant Désactiver les avertissements spécifiques, puis choisissez Modifier. Dans la zone d’édition de la boîte de dialogue Désactiver des avertissements spécifiques, entrez le numéro d’avertissement. Pour entrer plusieurs avertissements, séparez les valeurs à l’aide d’un point-virgule ( ;). Par exemple, pour désactiver à la fois C4001 et C4010, entrez 4001 ; 4010. Choisissez OK pour enregistrer vos modifications et revenir à la boîte de dialogue Pages de propriétés.

    • Pour définir l’option /we , sélectionnez le contrôle de liste déroulante Traiter les avertissements spécifiques en tant que contrôle de propriété Erreurs , puis choisissez Modifier. Dans la zone d’édition de la boîte de dialogue Traiter des avertissements spécifiques comme des erreurs , entrez le numéro d’avertissement. Pour entrer plusieurs avertissements, séparez les valeurs à l’aide d’un point-virgule ( ;). Par exemple, pour traiter les erreurs C4001 et C4010, entrez 4001 ; 4010. Choisissez OK pour enregistrer vos modifications et revenir à la boîte de dialogue Pages de propriétés.

  4. Pour définir l’option /wo, sélectionnez la page de propriétés de ligne >de commande C/C++>Configuration. Entrez l’option du compilateur dans la zone Options supplémentaires.

  5. Sélectionnez OK pour enregistrer vos modifications.

Pour définir l'option du compilateur par programmation

Voir aussi

Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC