2013-06-11 2 views
0

questions like this을 본 적이 있지만 플래그 이름을 얻는 방법이나 올바르게 무시하는 방법을 알지 못합니다.컴파일러 경고의 이름 가져 오기 및 무시

문제가 발생한 곳의 예는 라인 76의 경우 Reachability.h입니다. "Declaration of 'struct sockaddr_in' will not be visible outside of this function" 경고 메시지가 나타납니다.

파일에서이 경고의 이름을 가져오고 무시하는 방법은 무엇입니까? 나는 또한 이러한 리소스에서 찾고 있었어요

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wsemantic-issue" 
//reachabilityWithAddress- Use to check the reachability of a particular IP address. 
+ (Reachability *)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress; 
#pragma clang diagnostic pop 

:겠습니까 나는 이런 식으로 뭔가를 넣어

1

2

3

4

B 유감 나는 아직도 손실에 처해있다.

이 도달 가능성 클래스는 클래스가 아닌 경우 나는 LLVM 5.0

답변

1

을 사용하고, 당신은 원래의 코드를 변경하지 않습니다는, 당신은 선택의 여지가 없다.

원래 코드를 변경하려면 구조체 선언을 가져 와서 .h 클래스로 이동하십시오. 경고를 수정합니다.

경고를 제거하려는 경우 "-Wsemantic-issue"대신 #pragma clang diagnostic ignored "-w"를 사용하십시오. 그것은 푸시와 팝 라인 사이의 모든 경고를 제거합니다.

+0

예를 들어 설명했듯이 내가 언급 한 경고를 정확히 해결하기 위해 노력하지 않습니다. 경고를 해결할 수는 없지만 [이 경우] (http://stackoverflow.com/a/17054246/1292230)와 내가 가지고있는 몇 가지 다른 경우와 같이 불필요한 경우가 있습니다. 나는 꽤 일반적이고 잘 알려진 클래스이기 때문에 이것을 가져왔다. 나는 가능한 한 질문에 답을 얻기를 희망한다. 이 오류에 관해서는,'struct'는 .h 파일에서 선언하기에 과도한 외부 라이브러리에서 선언됩니다. – RileyE

+0

귀하의 경우에는 "-Wsemantic-issue"대신 #pragma clang diagnostic ignored "-w"를 사용하십시오. 모든 경고가 제거됩니다. – Bivis

+0

모든 경고를 제거하고 싶지는 않습니다. 푸시와 팝이 필요합니까? – RileyE

관련 문제