2009-10-03 3 views
3

gcc/Xcode가 특정 경고를 표시하지 않도록하려면 #pragma이 있습니까? Java의 @SuppressWarning 주석과 유사합니까?경고를 표시하지 않으려는 gcc/Xcode pragma가 있습니까?

일반적으로 -Wall으로 컴파일되지만 특정 경고를 무시하려는 경우가 있습니다 (예 : 디버깅에 도움이되는 빠른/더티 코드 작성 중).

"코드 수정"답변을 찾고 있지 않습니다.

답변

3

Here's a viable solution. #pragma GCC system_header을 사용하면 GCC가 아주 특별한 방법으로 코드를 처리하여 치명적이지 않은 어떤 것도 회피 할 수 있습니다. #warning.

당신은 단지 실제 컴파일러가 아니라 전처리기를 속일뿐입니다. 경고를 억제하는 것은 대부분의 경우 해를 끼칠 수 있습니다. 진단 옵션을 유지하는 데 사용됩니다

#pragma GCC diagnostic 
push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 
// Code that causes warning goes here 
#pragma GCC diagnostic pop 

푸시/팝 :

gcc4.6에서
+1

이상적인 세계에서는 모든 경고를 오류로 처리해야합니다 (-Werror 사용). 그것은 내가 할 수있을 때마다 내가하는 일이다. 여러 플랫폼을 다룰 때 힘들어 지지만 경고 이외에는 오류가 발생합니다. –

+0

네, 저도 해 롭습니다. 제 질문은 디버깅을 돕기위한 임시 코드에 대한 것이 었습니다. – nall

+1

블록에서이 작업을 수행 할 수 없다는 것은 나쁘다. 파일의 나머지를 위해 그것을하는 것은 저에게 너무 위험합니다. –

2

이후 당신은 단지 코드의 특정 블록, 즉 특정 경고를 억제하는 프라그의를 사용하고 억제 할 수 있습니다 코드가 처리되기 전에 그 위치에있었습니다.

모든 경고를 표시하지 않으려면 "#pragma GCC system_header"을 사용하는 것보다 훨씬 더 나은 방법입니다. (물론, 이전의 GCC에서 당신은 #pragma GCC system_header 접근 방식 "붙어"할 수있다!)

여기 억제 GCC 경고에 좋은 참조입니다 : http://www.dbp-consulting.com/tutorials/SuppressingGCCWarnings.html

이 페이지는 찾아 -fdiagnostics-show-option을 사용하는 방법에 대해 설명 무엇 옵션은 특정 경고를 제어합니다.

물론 다른 사람들도 언급했듯이 모든 경고의 근본 원인을 해결하는 것보다 훨씬 바람직합니다! 그러나 때로는 불가능합니다.

관련 문제