2012-08-06 3 views
21

Xcode 4.4에서 몇 가지 링커 경고를 던지기 시작한 라이브러리가 있습니다. 경고는 "ld : warning : instance method 'methodName :'클래스의 override 메소드에서 클래스의"인스턴스 메서드 오버라이드 링커 경고 프레임 워크 xcode

프레임 워크는 여전히 정상적으로 작동합니다. 다음 릴리스이지만, 당분간 이러한 경고는 매우 성가시다. 모든 링커 경고를 비활성화하지 않고 해제 할 수있는 방법이 있습니까?

+0

경고는 무엇을 의미합니까? – trojanfoe

+0

도서관을 만든 사람들이 부적절하게 어떤 것을 서브 클래 싱했다고 생각합니다. 아무것도 끊지 않는 것 같지만 링커는 닫힌 소스이기 때문에 그것을 고칠 수 없기 때문에 괴롭다. – ima747

+0

다른 클래스의 다른 메서드와 마찬가지로 클래스에 메서드를 만들거나 이름을 지정 했습니까? – Hexark

답변

13

는 Xc는에에 "기타 링커 플래그"플래그를 추가하여 내가 함께 온 두 가지 옵션이 있습니다 송시 빌드 설정 영역 :

1) 모든 링커 경고없이 표시되지 않습니다 -Xlinker -w 추가 유형 (이 LD에 -w 플래그 (1)). 분명히 그것은이 특별한 경고를 조용하게 할 것이지만, 다른 모든 경고도 마찬가지입니다.

2) -Xlinker -no_objc_category_merging을 추가하면 링커가 링크 중에 모든 범주 메서드를 기본 클래스로 결합하는 최적화 단계를 건너 뜁니다. 그러면 런타임에 대신 링크가 발생합니다. 시동시 조금 느려지는 것 같지만, 런타임시 메소드 swizzling보다 더 빠를 가능성이 높습니다. ld (1)이 경고를 발행하는이 단계 동안이 옵션을 건너 뜁니다.

ld는 컴파일러와 같은 개별 경고를 외과 적으로 억제하는 방법이 없지만 몇 가지 또는 그룹에 대한 특수 플래그가 있지만 (이 중 아무 것도 도움이되지 않음) 위의 해결 방법은 프로덕션 코드에는 권장되지 않지만 경우에 따라 둘 중 하나가 도움이 될 수 있습니다.

+0

감사합니다. 너는 나의 날을 구했다. – larva

1

그 경고를 숨기는 옵션이 아래에있을 것입니다 존재하는 경우 :

프로젝트 네비게이터 (왼쪽에있는 파일 목록) -> [프로젝트 이름] (파란색 아이콘이있는 것) -> 빌드 설정 -> 애플 LLVM 컴파일러 3.1 - 경고 또한

:

In Xcode, how to suppress all warnings in specific source files?

+2

감사합니다. 컴파일러 섹션에는 라이브러리 나 특정 경고에 대한 경고가 없습니다. 나는 모든 경고를 끌 수 있었지만 그것이 분명히 피하려고 노력했다. 다른 참조 된 게시물은 컴파일 될 파일을위한 것이지만 라이브러리와 헤더가 표시되지 않으므로 특별히 플래그를 설정할 방법이 없습니다. xcode에서 경고를 비활성화 할 수있는 방법이 없다고 가정해야합니다. – ima747

+0

이것은 나쁜 조언입니다. 빌드 설정 UI에는 확인란이없는 많은 경고가 있다고 생각합니다. 일반적으로 파일의 특정'-W' 옵션은 컴파일 중에이 문제를 수정합니다. 파일에'-fdiagnostics-show-option' 옵션을 설정하면 clang이 사용할'-W'를 알려줍니다. OP의 질문은 컴파일러가 아닌 ** 링커 **에 관한 것이기 때문에이 특별한 경우에는 작동하지 않습니다. – paulmelnikow

+0

링커가 아니라 컴파일러에 대한 또 다른 해결책은 진단용 플러그입니다 : http://clang.llvm.org/docs/UsersManual.html # controlling-diagnostics-via-pragmas – paulmelnikow

관련 문제