/w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (nivel de advertencia)

Especifica cómo el compilador genera las advertencias para una compilación determinada.

Sintaxis

/w
/W0
/W1
/W2
/W3
/W4
/Wall
/Wv[:version]
/WX
/w1warning
/w2warning
/w3warning
/w4warning
/wdwarning
/wewarning
/wowarning

Comentarios

Las opciones de advertencia especifican qué advertencias del compilador se van a mostrar y el comportamiento de las advertencias para toda la compilación.

Las opciones de advertencia y los argumentos relacionados se describen en las tablas siguientes:

Opción Descripción
/w Suprime todas las advertencias del compilador.
/W0

/W1

/W2

/W3

/W4
Especifica el nivel de las advertencias que el compilador generará. Los niveles de advertencia válidos oscilan entre 0 y 4:
/W0 suprime todas las advertencias. Es equivalente a /w.
/W1 muestra las advertencias de nivel 1 (grave). /W1 es el valor predeterminado en el compilador de la línea de comandos.
/W2 muestra las advertencias de nivel 1 y 2 (significativos).
/W3 muestra las advertencias de nivel 1, nivel 2 y nivel 3 (calidad de producción). /W3 es la configuración predeterminada en el IDE.
/W4 muestra las advertencias de nivel 1, nivel 2 y nivel 3, y todas las advertencias de nivel 4 (informativo) que no están desactivadas de manera predeterminada. Se recomienda usar esta opción para proporcionar las advertencias similares a las de lint. En un proyecto nuevo, probablemente lo mejor sea utilizar /W4 en todas las compilaciones. Esta opción ayuda a garantizar el menor número posible de defectos de código difíciles de encontrar.
/Wall Muestra todas las advertencias mostradas por /W4 y todas las demás advertencias que /W4 no incluye, por ejemplo, las advertencias desactivadas de manera predeterminada. Para más información, consulte Advertencias del compilador desactivadas de manera predeterminada.
/Wv[:version] Muestra solo las advertencias introducidas en la version del compilador y en versiones anteriores. Puede usar esta opción para suprimir las nuevas advertencias en el código cuando se migra a una versión más reciente del compilador. Le permite mantener el proceso de compilación actual mientras los corrige. La version opcional del parámetro coge el formato nn[. mm[. bbbbb]], donde nn es el número de versión principal, mm es el número de versión secundaria opcional y bbbbb es el número de compilación opcional del compilador. Por ejemplo, use /Wv:17 para mostrar solo las advertencias introducidas en Visual Studio 2012 (versión principal 17) o versiones anteriores. Es decir, muestra las advertencias de cualquier versión del compilador que tenga un número de versión principal de 17 o menos. Suprime las advertencias introducidas en Visual Studio 2013 (versión principal 18) y posteriores. De manera predeterminada, /Wv usa el número de versión del compilador actual y no suprime ninguna advertencia. Para más información sobre qué advertencias se suprimen según la versión del compilador, consulte Advertencias del compilador según la versión del compilador.
/WX Trata todas las advertencias del compilador como errores. Para un proyecto nuevo, puede ser mejor usar /WX en todas las compilaciones. Resolver todas las advertencias es una forma de asegurar el menor número posible de defectos de código difíciles de encontrar.

El enlazador también tiene una opción /WX. Para obtener más información, vea /WX (Tratar advertencias del enlazador como errores).

Las siguientes opciones son mutuamente excluyentes entre sí. La última opción que se especifica de este grupo es la que se aplica:

Opción Descripción
/w1nnnn

/w2nnnn

/w3nnnn

/w4nnnn
Establece el nivel de advertencia para el número de advertencia especificado por nnnn. Estas opciones le permiten cambiar el comportamiento del compilador de esa advertencia cuando se establece un nivel de advertencia específico. Puede usar estas opciones en combinación con otras opciones de advertencia para aplicar sus propios estándares de codificación en las advertencias, en lugar de las predeterminadas proporcionadas por Visual Studio.

Por ejemplo, /w34326 hace que C4326 se genere como una advertencia de nivel 3 en lugar de nivel 1. Si compila mediante la opción /w34326 y la opción /W2, no se genera la advertencia C4326.
/wdnnnn Suprime la advertencia del compilador especificada por nnnn.

Por ejemplo, /wd4326 suprime la advertencia del compilador C4326.
/wennnn Trata la advertencia del compilador especificada por nnnn como un error.

Por ejemplo, /we4326 hace que el compilador trate el número de advertencia C4326 como un error.
/wonnnn Notifica la advertencia del compilador especificada por nnnn solo una vez.

Por ejemplo, /wo4326 hace que se notifique la advertencia C4326 solo una vez, la primera vez que la encuentra el compilador.

Si usa alguna opción de advertencia al crear un encabezado precompilado, se mantiene esa configuración. El uso del encabezado precompilado vuelve a poner en vigor esas mismas opciones de advertencia. Para invalidar las opciones de advertencia del encabezado precompilado, establezca otra opción de advertencia en la línea de comandos.

Puede usar una directiva de advertencia #pragma para controlar el nivel de advertencia que se notifica en tiempo de compilación en los archivos de código fuente específicos.

Las directivas pragma de advertencia en el código fuente no se ven afectadas por la opción /w.

La documentación de errores de compilación describe las advertencias y los niveles de advertencia e indica por qué es posible que algunas instrucciones no se compilen según lo previsto.

Para establecer la opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Para establecer las opciones /W0, /W1, /W2, /W3, /W4, /Wall, /Wv, /WX, o /WX-, seleccione Propiedades de configuración>C/C++>General.

    • Para establecer las opciones /W0, /W1, /W2, /W3, /W4 o /Wall, modifique la propiedad Nivel de advertencia.

    • Para establecer las opciones /WX o /WX-, modifique la propiedad Tratar las advertencias como errores.

    • Para establecer la versión de la opción /Wv, escriba el número de versión del compilador en la propiedad Versión de advertencia.

  3. Para establecer las opciones /wd o /we, seleccione en la página de propiedades Configuración de propiedades>C/C++>Avanzado.

    • Para establecer la opción /wd, seleccione el control desplegable de la propiedad Deshabilitar advertencias específicas y, a continuación, elija Editar. En el cuadro de edición del diálogo Deshabilitar advertencias específicas, escriba el número de advertencia. Para especificar más de una advertencia, separe los valores con un punto y coma (;). Por ejemplo, para deshabilitar C4001 y C4010, escriba 4001;4010. Elija Aceptar para guardar los cambios y volver al cuadro de diálogo de la Páginas de propiedades.

    • Para establecer la opción /we, seleccione en el control desplegable Tratar advertencias específicas como errores y, a continuación, elija Editar. En el cuadro de edición del diálogo Tratar advertencias específicas como errores, escriba el número de advertencia. Para especificar más de una advertencia, separe los valores con un punto y coma (;). Por ejemplo, para tratar C4001 y C4010 como errores, escriba 4001;4010. Elija Aceptar para guardar los cambios y volver al cuadro de diálogo de la Páginas de propiedades.

  4. Para establecer la opción /wo, seleccione en la página de propiedades Configuración de Propiedades>C/C++>Línea de comandos. Escriba la opción del compilador en el cuadro Opciones adicionales.

  5. Elija Aceptar para guardar los cambios.

Para establecer la opción del compilador mediante programación

Consulte también

Opciones del compilador de MSVC
Sintaxis de línea de comandos del compilador de MSVC