/w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (уровень предупреждения)

Указывает, как компилятор создает предупреждения для данной компиляции.

Синтаксис

/w
/W0
/W1
/W2
/W3
/W4
/Wall
/Wv[:version]
/WX
Предупреждение /w1
Предупреждение /w2
Предупреждение /w3
Предупреждение /w4
Предупреждение /wd
/мыпредупреждаем
Предупреждение /wo

Замечания

Параметры предупреждения указывают, какие предупреждения компилятора будут отображаться и поведение предупреждения для всей компиляции.

Параметры предупреждения и связанные аргументы описаны в следующих таблицах:

Вариант Описание
/w Подавляет все предупреждения компилятора.
/W0

/W1

/W2

/W3

/W4
Указывает уровень предупреждений, создаваемых компилятором. Допустимые уровни предупреждений варьируются от 0 до 4:
/W0 подавляет все предупреждения. Это эквивалентно /w.
/W1 отображает предупреждения уровня 1 (тяжелые). /W1 — это параметр по умолчанию в компиляторе командной строки.
/W2 отображает предупреждения уровня 1 и уровня 2 (значимые).
/W3 отображает предупреждения уровня 1, уровня 2 и уровня 3 (качество рабочей среды). /W3 — это параметр по умолчанию в интегрированной среде разработки.
/W4 отображает предупреждения уровня 1, уровня 2 и уровня 3 и все предупреждения уровня 4 (информационные), которые не отключены по умолчанию. Мы рекомендуем использовать этот параметр для предоставления предупреждений, похожих на lint. Для нового проекта лучше всего использовать /W4 во всех компиляциях. Этот параметр помогает обеспечить наименьшие возможные дефекты кода.
/Wall Отображает все предупреждения, отображаемые /W4 и все остальные предупреждения, которые не включают /W4, например предупреждения, отключенные по умолчанию. Дополнительные сведения см. в разделе "Предупреждения компилятора", отключенные по умолчанию.
/Wv[:version] Отображает только предупреждения, представленные в версии компилятора версий и более ранних версий. Этот параметр можно использовать для подавления новых предупреждений в коде при переходе на более новую версию компилятора. Он позволяет поддерживать существующий процесс сборки при их исправлении. Необязательная версия параметра принимает форму nn[.mm[.bbbbb]], где nn является основным номером версии, мм является необязательным дополнительным номером версии, а bbbbb — необязательный номер сборки компилятора. Например, используйте /Wv:17 для отображения только предупреждений, представленных в Visual Studio 2012 (основная версия 17) или более ранних версий. То есть в нем отображаются предупреждения от любой версии компилятора с основным номером версии 17 или меньше. Он подавляет предупреждения, представленные в Visual Studio 2013 (основная версия 18) и более поздних версий. По умолчанию /Wv использует текущий номер версии компилятора, и предупреждения не подавляются. Сведения о том, какие предупреждения подавляются версией компилятора, см. в предупреждениях компилятора по версии компилятора.
/WX Интерпретирует все предупреждения компилятора как ошибки. Для нового проекта лучше всего использовать /WX во всех компиляциях. Разрешение всех предупреждений обеспечивает наименьшие возможные дефекты кода.

Компоновщик также имеет параметр /WX . Дополнительные сведения см. в разделе /WX (обработка предупреждений компоновщика как ошибок).

Следующие варианты взаимоисключаются друг с другом. Последний параметр, указанный из этой группы, является примененным:

Вариант Описание
/w1nn

/w2nn

/w3nnnnnn

/w4nn
Задает уровень предупреждения для номера предупреждения, указанного nnnn. Эти параметры позволяют изменить поведение компилятора для этого предупреждения при установке определенного уровня предупреждений. Эти параметры можно использовать в сочетании с другими параметрами предупреждения для применения собственных стандартов программирования для предупреждений, а не стандартных, предоставляемых Visual Studio.

Например, /w34326 приводит к созданию C4326 в виде предупреждения уровня 3 вместо уровня 1. При компиляции с помощью параметра /w34326 и параметра /W2 предупреждение C4326 не создается.
/wdnn Подавляет предупреждение компилятора, указанное nnnn.

Например, /wd4326 подавляет предупреждение компилятора C4326.
/wennnnnn Обрабатывает предупреждение компилятора, указанное nnnn как ошибку.

Например, /we4326 приводит к тому, что номер предупреждения C4326 обрабатывается компилятором как ошибка.
/wonn Сообщает предупреждение компилятора, указанное nnnn только один раз.

Например, /wo4326 вызывает предупреждение C4326 только один раз, при первом обнаружении компилятором.

Если при создании предварительно скомпилированного заголовка используются какие-либо предупреждения, эти параметры сохраняются. Использование предварительно скомпилированного заголовка снова помещает те же параметры предупреждения. Чтобы переопределить параметры предупреждения предкомпилированного заголовка, задайте другой параметр предупреждения в командной строке.

Вы можете использовать директиву предупреждения #pragma для управления уровнем предупреждения, сообщаемого во время компиляции в определенных исходных файлах.

Директивы pragma предупреждения в исходном коде не влияют на параметр /w .

Документация по ошибкам сборки описывает уровни предупреждений и предупреждений и указывает, почему определенные инструкции могут не компилироваться по мере необходимости.

Настройка параметров компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Чтобы задать параметры /W0, /W1, /W2, /W3, /W4, /Wall, /Wv, /WX или /WX, выберите свойства>конфигурации C/C++>General.

    • Чтобы задать параметры /W0, /W1, /W2, /W3, /W4 или /Wall, измените свойство уровня предупреждения.

    • Чтобы задать параметры /WX или /WX, измените свойство "Предупреждения как ошибки".

    • Чтобы задать версию параметра /Wv , введите номер версии компилятора в свойстве Warning Version .

  3. Чтобы задать параметры /wd или /we, выберите страницу свойств>конфигурации C/C++>Advanced.

    • Чтобы задать параметр /wd , выберите раскрывающийся список свойств "Отключить определенные предупреждения" и нажмите кнопку "Изменить". В диалоговом окне редактирования в диалоговом окне "Отключить определенные предупреждения" введите номер предупреждения. Чтобы ввести несколько предупреждений, разделите значения с запятой (;). Например, чтобы отключить как C4001, так и C4010, введите 4001; 4010. Нажмите кнопку "ОК ", чтобы сохранить изменения и вернуться в диалоговое окно "Страницы свойств".

    • Чтобы задать параметр /we , выберите раскрывающийся список свойств "Предупреждения от ошибок " и нажмите кнопку "Изменить". В диалоговом окне редактирования в диалоговом окне "Обращение с конкретными предупреждениями в качестве ошибок " введите номер предупреждения. Чтобы ввести несколько предупреждений, разделите значения с запятой (;). Например, чтобы рассматривать как ошибки C4001, так и C4010, введите 4001; 4010. Нажмите кнопку "ОК ", чтобы сохранить изменения и вернуться в диалоговое окно "Страницы свойств".

  4. Чтобы задать параметр /wo, выберите страницу свойств>конфигурации C/C++>Command Line. Введите параметр компилятора в поле "Дополнительные параметры ".

  5. Нажмите ОК, чтобы сохранить внесенные изменения.

Установка параметра компилятора программным способом

См. также

Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC