본문 바로가기

C++ (learncpp)/Introduction - Getting Started

0.11 — Configuring your compiler: Warning and error levels

프로그램을 작성할 때 컴파일러는 C++ 언어의 규칙을 따랐는지 확인합니다.

언어 규칙을 완전히 위반하는 작업을 수행한 경우 컴파일하는 동안 컴파일러는 오류를 포함하는 줄 번호와 예상한 내용과 발견된 내용에 대한 텍스트를 모두 제공하는 오류를 내보냅니다. 실제 오류는 해당 줄이나 이전 줄에 있을 수 있습니다. 잘못된 코드 줄을 식별하고 수정한 후에는 다시 컴파일을 시도할 수 있습니다.

다른 경우에 컴파일러는 오류가 있는 것처럼 보이는 코드를 찾을 수 있지만 컴파일러는 확신할 수 없습니다(모토: "프로그래머를 신뢰하십시오"를 기억하십시오). 이러한 경우 컴파일러는 경고를 발행하도록 선택할 수 있습니다. 경고는 컴파일을 중단하지 않지만 프로그래머에게 뭔가 잘못된 것 같다는 신호입니다.

 

모범 사례 (Best Practice)

경고가 쌓이지 않도록 하십시오. 오류가 발생한 것처럼 문제를 해결하십시오.

대부분의 경우 경고는 경고가 가리키는 오류를 수정하거나 경고가 더 이상 생성되지 않도록 경고를 생성하는 코드 줄을 다시 작성하여 해결할 수 있습니다.

드문 경우지만 문제의 코드 행에 대해 특정 경고를 생성하지 않도록 컴파일러에 명시적으로 지시해야 할 수도 있습니다. C++는 이 작업을 수행하는 공식적인 방법을 지원하지 않지만 많은 개별 컴파일러(Visual Studio 및 GCC 포함)는 일시적으로 경고를 비활성화하는 솔루션을 제공합니다(이동이 불가능한 #pragma 지시문을 통해).

 

기본적으로 대부분의 컴파일러는 가장 명백한 문제에 대한 경고만 생성합니다. 그러나 이상하다고 생각되는 사항에 대해 경고를 제공하는 것에 대해 컴파일러에게 보다 적극적으로 요청할 수 있습니다.

 

모범 사례

특히 배우는 동안 경고 수준을 최대로 높이십시오. 가능한 문제를 식별하는 데 도움이 됩니다.

Increasing your warning levels

Visual Studio 사용자의 경우 (For Visual Studio users)

경고 수준을 높이려면 솔루션 탐색기 창에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 선택합니다.


프로젝트 대화 상자에서 먼저 구성 필드가 모든 구성으로 설정되어 있는지 확인하십시오.

그런 다음 C/C++ > 일반 탭을 선택하고 경고 수준을 수준 4(/W4)로 설정합니다.




참고: EnableAllWarnings(/Wall)를 선택하지 마십시오. 그렇지 않으면 C++ 표준 라이브러리에서 생성된 경고에 묻힐 것입니다.

For Code::Blocks users

설정 메뉴 > 컴파일러 > 컴파일러 설정 탭에서 -Wall, -Weffc++ 및 -Wextra와 관련된 옵션을 찾아 확인합니다.



참고: -Werror 매개변수는 아래에 설명되어 있습니다.

GCC/G++ 사용자용 (For GCC/G++ users)

명령줄에 다음 플래그를 추가합니다. -Wall -Weffc++ -Wextra -Wsign-conversion

경고를 오류로 처리 (Treat warnings as errors)

 

또한 모든 경고를 오류인 것처럼 처리하도록 컴파일러에 지시할 수도 있습니다(이 경우 컴파일러는 경고를 발견하면 컴파일을 중지합니다). 이것은 모든 경고를 수정해야 한다는 권장 사항을 적용하는 좋은 방법입니다(우리 대부분이 하는 자제력이 부족한 경우).

 

Visual Studio 사용자의 경우 (For Visual Studio users)

경고를 오류로 처리하려면 솔루션 탐색기 창에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 선택합니다.



프로젝트 대화 상자에서 먼저 구성 필드가 모든 구성으로 설정되어 있는지 확인하십시오.

그런 다음 C/C++ > 일반 탭을 선택하고 경고를 오류로 처리를 예(/WX)로 설정합니다.



코드블록 사용자 (For Code::Blocks users)

설정 메뉴 > 컴파일러 > 기타 컴파일러 옵션 탭에서 텍스트 편집 영역에 -Werror를 추가합니다.

 

GCC/G++ 사용자용 (For GCC/G++ users)

명령줄에 다음 플래그를 추가합니다. -Werror

 

reference : https://www.learncpp.com/cpp-tutorial/configuring-your-compiler-warning-and-error-levels/