gcc 컴파일러에서 -pedantic 플래그를 처음 써보았기에, 플래그에 대해 알게된 정보를 기록해보았다.
-pedantic
플래그는 ISO C/C++ 표준을 엄격하게 준수하지 않는 코드를 작성한 경우 이를 컴파일 시점에서 warning으로 표시한다. -pedantic-errors
는 동일한 기준으로 코드를 체크하지만, warning이 아닌 error로 표시한다.
위의 플래그와 함께 -std=xxx
로 별도의 컴파일 버전을 표기한 경우 해당 버전에 따라 체크한다.
-pedantic
플래그 없이 컴파일 할 때에는 표준 C/C++을 포함하여 다른 익스텐션의 기능들도 활용할 수 있지만, 해당 플래그를 활용할 시 ISO C/C++을 엄격하게 준수하지 않는 코드를 체크하고 걸러낸다. 따라서 C/C++ 익스텐션을 쓰는 경우, 해당 플래그로 컴파일 시에 익스텐션을 활용할 수 없는 경우도 있다. 역으로 ISO C/C++ 표준을 지키지 않은 코드를 걸러내고 싶을 때 해당 플래그를 사용하기도 하지만, GNU 레퍼런스에서는 권장하는 방법이 아니다. (-pedantic 파트 참고)
-pedantic-errors
는 -Werror=pedantic
를 대체할 수 없다.
-Wpedantic
은 -pedantic
플래그와 유사하지만, 언더바(_
)로 시작하고 끝나는 대체 키워드(Alternate Keywords)의 사용을 허가한다.