문제

ANSI C (C99) 경고/오류를 시행하기 위해 어떤 GCC 옵션을 사용해야합니까? GCC (GCC) 3.4.2 (mingw- 전문가)

사용 중입니다 : gcc -pedantic -ansi -std = c99 이것이 맞습니까?

도움이 되었습니까?

해결책

그만큼 -ansi 플래그는 The와 동의어입니다 -std=c89 깃발.

그냥 사용합니다 -std=c99 ~와 함께 -pedantic 충분해야합니다.

의심스러운 경우 항상 할 수 있습니다 GCC 문서를 참조하십시오. GCC 3.4.2에서 읽을 장은 다음과 같습니다. 2- GCC가 지원하는 언어 표준.

다른 팁

이것은 오래된 질문이지만 추가 점수를 추가하고 싶었습니다.

첫째, GCC에 공급하는 일반 명령 줄 스위치 세트에 관계없이 현재 GCC를 모두보고 할 수없는 것으로 보입니다. 제약 위반 "오류"및 다른 모든 것은 "경고"로서. "경고"로서 GCC 보고서가 실제로 진단 메시지 중 일부는 제약 위반 (예 : "오류") C 언어의 관점에서 볼 때 GCC가 그 사실을 인식하고 "오류"진단을 생성하도록 강요 할 방법은 없습니다. 개별 경고 유형을 미세 조정함으로써보다 정확한 분리를 달성 할 수 있지만 GCC 설정이 좋은 일치를 달성하기에 충분한 세분성을 제공 할 수는 없습니다.

둘째, GCC는 제공합니다 -pedantic-errors 평원 대신에 사용할 수있는 옵션 -pedantic, 이는 진단 메시지의 "오류"및 "경고"로보다 정확한 (위에서 설명한) 분류를 가능하게하기위한 것입니다. 그래도 아직 완벽하지는 않습니다.

추신 : 언어 사양은 진단 메시지를 "오류"및 "경고"로 분리 할 필요가 없거나 정의되지 않지만 실제로 많은 프로그래머는 제약 위반이 "오류"로보고 될 것으로 예상합니다. 나는 당신이 당신의 질문에 "경고/오류를 시행"할 때 그런 의미를 가질 수 있다고 생각했습니다.

-ansi
    In C mode, this is equivalent to -std=c89. In C++ mode, it is equivalent to -std=c++98.

ANSI C는 C99와 동일하지 않습니다 (아직). 또한, -Wall 또한 관심이있을 수 있지만만 -pedantic 원하는대로해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top