/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
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Чтобы задать параметры /W0, /W1, /W2, /W3, /W4, /Wall, /Wv, /WX или /WX, выберите свойства>конфигурации C/C++>General.
Чтобы задать параметры /W0, /W1, /W2, /W3, /W4 или /Wall, измените свойство уровня предупреждения.
Чтобы задать параметры /WX или /WX, измените свойство "Предупреждения как ошибки".
Чтобы задать версию параметра /Wv , введите номер версии компилятора в свойстве Warning Version .
Чтобы задать параметры /wd или /we, выберите страницу свойств>конфигурации C/C++>Advanced.
Чтобы задать параметр /wd , выберите раскрывающийся список свойств "Отключить определенные предупреждения" и нажмите кнопку "Изменить". В диалоговом окне редактирования в диалоговом окне "Отключить определенные предупреждения" введите номер предупреждения. Чтобы ввести несколько предупреждений, разделите значения с запятой (;). Например, чтобы отключить как C4001, так и C4010, введите 4001; 4010. Нажмите кнопку "ОК ", чтобы сохранить изменения и вернуться в диалоговое окно "Страницы свойств".
Чтобы задать параметр /we , выберите раскрывающийся список свойств "Предупреждения от ошибок " и нажмите кнопку "Изменить". В диалоговом окне редактирования в диалоговом окне "Обращение с конкретными предупреждениями в качестве ошибок " введите номер предупреждения. Чтобы ввести несколько предупреждений, разделите значения с запятой (;). Например, чтобы рассматривать как ошибки C4001, так и C4010, введите 4001; 4010. Нажмите кнопку "ОК ", чтобы сохранить изменения и вернуться в диалоговое окно "Страницы свойств".
Чтобы задать параметр /wo, выберите страницу свойств>конфигурации C/C++>Command Line. Введите параметр компилятора в поле "Дополнительные параметры ".
Нажмите ОК, чтобы сохранить внесенные изменения.
Установка параметра компилятора программным способом
- См. разделы WarningLevel, WarnAsError, DisableSpecificWarnings и AdditionalOptions.
См. также
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC