다음을 통해 공유


/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경고
/we경고
/wo경고

설명

경고 옵션은 표시할 컴파일러 경고와 전체 컴파일에 대한 경고 동작을 지정합니다.

경고 옵션 및 관련 인수는 다음 표에 설명되어 있습니다.

옵션 설명
/w 모든 컴파일러 경고를 표시하지 않습니다.
/W0

/W1

/W2

/W3

/W4
컴파일러에서 생성할 경고 수준을 지정합니다. 유효한 경고 수준은 0에서 4까지입니다.
/W0 은 모든 경고를 표시하지 않습니다. /w동일합니다.
/W1 에는 수준 1(심각한) 경고가 표시됩니다. /W1 은 명령줄 컴파일러의 기본 설정입니다.
/W2 는 수준 1과 수준 2(중요) 경고를 표시합니다.
/W3 에는 수준 1, 수준 2 및 수준 3(프로덕션 품질) 경고가 표시됩니다. /W3 은 IDE의 기본 설정입니다.
/W4 에는 수준 1, 수준 2 및 수준 3 경고와 기본적으로 꺼져 있지 않은 모든 수준 4(정보 제공) 경고가 표시됩니다. 이 옵션을 사용하여 lint와 유사한 경고를 제공하는 것이 좋습니다. 새 프로젝트의 경우 모든 컴파일에서 /W4를 사용하는 것이 가장 좋습니다. 이 옵션은 찾기 어려운 코드 결함을 최소화하는 데 도움이 됩니다.
/Wall /W4에 의해 표시되는 모든 경고와 /W4포함되지 않은 다른 모든 경고(예: 기본적으로 꺼져 있는 경고)를 표시합니다. 자세한 내용은 기본적으로 꺼져 있는 컴파일러 경고를 참조하세요.
/Wv[:version] 버전 컴파일러 버전 및 이전 버전도입된 경고만 표시합니다. 이 옵션을 사용하여 최신 버전의 컴파일러로 마이그레이션할 때 코드에서 새 경고를 표시하지 않을 수 있습니다. 이를 통해 기존 빌드 프로세스를 수정하는 동안 유지 관리할 수 있습니다. 선택적 매개 변수 버전은 nn[형식을 사용합니다.mm[.nn이 주 버전 번호이고 mm 은 선택적 부 버전 번호이고 bbbbb는 컴파일러의 선택적 빌드 번호입니다. 예를 들어 /Wv:17을 사용하여 Visual Studio 2012(주 버전 17) 이하에 도입된 경고만 표시합니다. 즉, 주 버전 번호가 17 이하인 컴파일러의 모든 버전에서 경고를 표시합니다. Visual Studio 2013(주 버전 18) 이상에서 도입된 경고를 표시하지 않습니다. 기본적으로 /Wv 는 현재 컴파일러 버전 번호를 사용하며 경고가 표시되지 않습니다. 컴파일러 버전에서 표시되지 않는 경고에 대한 자세한 내용은 컴파일러 버전별 컴파일러 경고를 참조하세요.
/WX 모든 컴파일러 경고를 오류로 처리합니다. 새 프로젝트의 경우 모든 컴파일에서 /WX를 사용하는 것이 가장 좋습니다. 모든 경고를 해결하면 찾기 어려운 코드 결함이 가장 적습니다.

링커에는 /WX 옵션도 있습니다. 자세한 내용은 /WX(링커 경고를 오류로 처리)를 참조하세요.

다음 옵션은 서로 함께 사용할 수 없습니다. 이 그룹에서 지정한 마지막 옵션은 적용된 옵션입니다.

옵션 설명
/w1nnnn

/w2nnnn

/w3nnnn

/w4nnnn
nnnn으로 지정된 경고 번호의 경고 수준을 설정합니다. 이러한 옵션을 사용하면 특정 경고 수준이 설정되면 해당 경고에 대한 컴파일러 동작을 변경할 수 있습니다. 이러한 옵션을 다른 경고 옵션과 함께 사용하여 Visual Studio에서 제공하는 기본 코드가 아닌 경고에 대한 고유한 코딩 표준을 적용할 수 있습니다.

예를 들어 /w34326 을 사용하면 C4326이 수준 1 대신 수준 3 경고로 생성됩니다. /w34326 옵션과 /W2 옵션을 모두 사용하여 컴파일하는 경우 경고 C4326이 생성되지 않습니다.
/wdnnnn nnnn으로 지정된 컴파일러 경고를 표시하지 않습니다.

예를 들어 /wd4326 은 컴파일러 경고 C4326을 표시하지 않습니다.
/wennnn nnnn에서 지정한 컴파일러 경고를 오류로 처리합니다.

예를 들어 /we4326 을 사용하면 경고 번호 C4326이 컴파일러에서 오류로 처리됩니다.
/wonnnn nnnn에서 지정한 컴파일러 경고를 한 번만 보고합니다.

예를 들어 /wo4326 을 사용하면 컴파일러에서 처음으로 경고 C4326이 한 번만 보고됩니다.

미리 컴파일된 헤더를 만들 때 경고 옵션을 사용하면 해당 설정이 유지됩니다. 미리 컴파일된 헤더를 사용하면 동일한 경고 옵션이 다시 적용됩니다. 미리 컴파일된 헤더 경고 옵션을 재정의하려면 명령줄에서 다른 경고 옵션을 설정합니다.

#pragma 경고 지시문을 사용하여 특정 소스 파일의 컴파일 시간에 보고되는 경고 수준을 제어할 수 있습니다.

소스 코드의 경고 pragma 지시문은 /w 옵션의 영향을 받지 않습니다.

빌드 오류 설명서에서는 경고 및 경고 수준을 설명하고 특정 문이 의도한 대로 컴파일되지 않는 이유를 나타냅니다.

Visual Studio 개발 환경에서 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. /W0, /W1, /W2, /W3, /W4, /Wall, /Wv, /WX 또는 /WX- 옵션을 설정하려면 구성 속성>C/C++>일반을 선택합니다.

    • /W0, /W1, /W2, /W3, /W4 또는 /Wall 옵션을 설정하려면 경고 수준 속성을 수정합니다.

    • /WX 또는 /WX- 옵션을 설정하려면 경고를 오류 속성으로 수정합니다.

    • /Wv 옵션의 버전을 설정하려면 경고 버전 속성에 컴파일러 버전 번호를 입력합니다.

  3. /wd 또는 /we 옵션을 설정하려면 구성 속성>C/C++>고급 속성 페이지를 선택합니다.

    • /wd 옵션을 설정하려면 특정 경고 사용 안 함 속성 드롭다운 컨트롤을 선택한 다음 편집을 선택합니다. 특정 경고 사용 안 함 대화 상자의 편집 상자에 경고 번호를 입력합니다 . 둘 이상의 경고를 입력하려면 세미콜론(;)을 사용하여 값을 구분합니다. 예를 들어 C4001 및 C4010을 모두 사용하지 않도록 설정하려면 4001을 입력 합니다. 4010. [확인]을 선택하여 변경 내용을 저장하고 [속성 페이지] 대화 상자로 돌아갑니다.

    • /we 옵션을 설정하려면 특정 경고를 오류로 처리 속성 드롭다운 컨트롤을 선택한 다음 편집을 선택합니다. 특정 경고를 오류로 처리 대화 상자의 편집 상자에 경고 번호를 입력합니다. 둘 이상의 경고를 입력하려면 세미콜론(;)을 사용하여 값을 구분합니다. 예를 들어 C4001 및 C4010을 모두 오류로 처리하려면 4001을 입력 합니다. 4010. [확인]을 선택하여 변경 내용을 저장하고 [속성 페이지] 대화 상자로 돌아갑니다.

  4. /wo 옵션을 설정하려면 구성 속성>C/C++>명령줄 속성 페이지를 선택합니다. 추가 옵션 상자에 컴파일러 옵션을 입력합니다.

  5. 확인을 선택하여 변경 내용을 저장합니다.

프로그래밍 방식으로 컴파일러 옵션을 설정하려면

참고 항목

MSVC 컴파일러 옵션
MSVC 컴파일러 명령줄 구문