/w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (nível de aviso)

Especifica como o compilador gera avisos para uma determinada compilação.

Sintaxe

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

Comentários

As opções de aviso especificam quais avisos do compilador serão exibidos e o comportamento do aviso para toda a compilação.

As opções de aviso e os argumentos relacionados estão descritos nas seguintes tabelas:

Opção Descrição
/w Suprime todos os avisos do compilador.
/W0

/W1

/W2

/W3

/W4
Especifica o nível dos avisos a serem gerados pelo compilador. Os níveis de aviso válidos variam de 0 a 4:
/W0 suprime todos os avisos. É equivalente a /w.
/W1 exibe avisos de nível 1 (grave). /W1 é a configuração padrão no compilador de linha de comando.
/W2 exibe avisos de nível 1 e nível 2 (significativos).
/W3 exibe avisos de nível 1, nível 2 e nível 3 (qualidade de produção). /W3 é a configuração padrão no IDE.
/W4 exibe avisos de nível 1, nível 2 e nível 3 e todos os avisos de nível 4 (informativo) que não estão desativados por padrão. Recomendamos que você use essa opção para fornecer avisos semelhantes ao do linter. Para um novo projeto, talvez seja melhor usar /W4 em todas as compilações. Essa opção ajuda a garantir o menor número possível de defeitos de código difíceis de localizar.
/Wall Mostra todos os avisos exibidos pelo /W4 e todos os outros avisos que /W4 não inclui, por exemplo, avisos que estão desativados por padrão. Para obter mais informações, confira Avisos do compilador desativados por padrão.
/Wv[:version] Exibe apenas avisos introduzidos na versão do compilador version e anteriores. Você pode usar essa opção para suprimir novos avisos no código ao migrar para uma versão mais recente do compilador. Ela permite que você mantenha seu processo de build existente enquanto você os corrige. O parâmetro opcional version usa o formato nn[.mm[.bbbbb]], em que nn é o número da versão principal, mm é o número da versão secundária opcional e bbbbb é o número de build opcional do compilador. Por exemplo, use /Wv:17 para exibir apenas avisos introduzidos no Visual Studio 2012 (versão principal 17) ou anterior. Ou seja, são exibidos avisos de qualquer versão do compilador que tenha um número de versão principal de 17 ou inferior. São suprimidos os avisos introduzidos no Visual Studio 2013 (versão principal 18) e posteriores. Por padrão, o /Wv usa o número de versão atual do compilador e nenhum aviso é suprimido. Para obter informações sobre quais avisos são suprimidos por versão do compilador, confira Avisos do compilador por versão do compilador.
/WX Trata todos os avisos do compilador como erros. Para um novo projeto, talvez seja melhor usar /WX em todas as compilações. A resolução de todos os avisos assegura o menor número possível de defeitos de código difíceis de localizar.

O vinculador também tem uma opção /WX. Para obter mais informações, confira /WX (Tratar avisos do vinculador como erros).

As opções a seguir são mutuamente exclusivas. A última opção especificada desse grupo vai ser aplicada:

Opção Descrição
/w1nnnn

/w2nnnn

/w3nnnn

/w4nnnn
Define o nível de aviso para o número de aviso especificado por nnnn. Essas opções permitem alterar o comportamento do compilador para esse aviso quando um nível de aviso específico é definido. Você pode usar essas opções em combinação com outras opções de aviso para impor seus próprios padrões de codificação para avisos, em vez dos padrões fornecidos pelo Visual Studio.

Por exemplo, /w34326 faz com que o C4326 seja gerado como um aviso de nível 3 em vez do nível 1. Se você compilar usando a opção /w34326 e a opção /W2, o aviso C4326 não será gerado.
/wdnnnn Suprime o aviso do compilador especificado por nnnn.

Por exemplo, /wd4326 suprime o aviso do compilador C4326.
/wennnn Trata o aviso do compilador especificado por nnnn como um erro.

Por exemplo, /we4326 faz com que o aviso número C4326 seja tratado como um erro pelo compilador.
/wonnnn Relata o aviso do compilador especificado por nnnn apenas uma vez.

Por exemplo, /wo4326 faz com que o aviso C4326 seja relatado apenas uma vez, a primeira vez que ele é encontrado pelo compilador.

Se você usar qualquer opção de aviso ao criar um cabeçalho pré-compilado, ele manterá essas configurações. O uso do cabeçalho pré-compilado coloca essas mesmas opções de aviso em vigor novamente. Para substituir as opções de aviso de cabeçalho pré-compilado, defina outra opção de aviso na linha de comando.

Você pode usar uma diretiva #pragma warning para controlar o nível de aviso relatado em tempo de compilação em arquivos de origem específicos.

As diretivas de pragma de aviso no código-fonte não são afetadas pela opção /w.

A documentação de erros de build descreve os avisos e os níveis de aviso e indica por que determinadas instruções podem não ser compiladas como você pretende.

Para definir as opções do compilador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.

  2. Para definir as opções /W0, /W1, /W2, /W3, /W4, /Wall, /Wv, /WX ou /WX-, selecione Propriedades de Configuração>C/C++>Geral.

    • Para definir as opções /W0, /W1, /W2, /W3, /W4 ou /Wall, modifique a propriedade Nível de Aviso.

    • Para definir as opções /WX ou /WX-, modifique a propriedade Tratar Avisos como Erros.

    • Para definir a versão para a opção /Wv, insira o número da versão do compilador na propriedade Versão de Aviso.

  3. Para definir as opções /wd ou /we, selecione a página de propriedadesPropriedades de Configuração>C/C++>Avançado.

    • Para definir a opção /wd, selecione o controle suspenso da propriedade Desabilitar Avisos Específicos e escolha Editar. Na caixa de edição da caixa de diálogo Desabilitar Avisos Específicos, insira o número do aviso. Para inserir mais de um aviso, separe os valores usando ponto e vírgula (;). Por exemplo, para desabilitar C4001 e C4010, insira 4001;4010. Escolha OK para salvar suas alterações e retornar para a caixa de diálogo Páginas de Propriedade.

    • Para definir a opção /we, selecione o controle suspenso da propriedade Tratar Avisos Específicos Como Erros e escolha Editar. Na caixa de edição da caixa de diálogo Tratar Avisos Específicos Como Erros, insira o número do aviso. Para inserir mais de um aviso, separe os valores usando ponto e vírgula (;). Por exemplo, para tratar os avisos C4001 e C4010 como erros, insira 4001;4010. Escolha OK para salvar suas alterações e retornar para a caixa de diálogo Páginas de Propriedade.

  4. Para definir a opção /wo, selecione a página de propriedades Propriedades da Configuração>C/C++>Linha de Comando. Digite a opção do compilador na caixa Opções Adicionais.

  5. Escolha OK para salvar suas alterações.

Para definir a opção do compilador programaticamente

Confira também

Opções do compilador MSVC
Sintaxe de linha de comando do compilador MSVC