2011-11-13 3 views
6
내가 시뮬레이터 4.3 아이폰 OS에서 컴파일 오류가 있어요

나는 실제로 그것을 알아낼 수 없습니다, 내가 오류는 다음과 같습니다하는 4.3

dyld: lazy symbol binding failed: Symbol not found: _objc_retain 
    Referenced from: /Users/ben/Library/Application Support/iPhone Simulator/4.3.2/Applications/75915A97-7C3D-489A-B7B0-7B6895A4B584/AppName.app/AppName 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/libobjc.A.dylib 

dyld: Symbol not found: _objc_retain 
    Referenced from: /Users/ben/Library/Application Support/iPhone Simulator/4.3.2/Applications/75915A97-7C3D-489A-B7B0-7B6895A4B584/AppName.app/AppName 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/libobjc.A.dylib 

참고 :
참조되는 라이브러리 (libobjc.A.dylib)는 실제로 '예상 장소'에 있습니다. 코드는 iOS5 장치 및 iOS5 시뮬레이터에서 올바르게 작동합니다.

+0

당신이이 프로젝트에 ARC를 사용하고 추가 -fobjc-arc

  • 을 추가 하시겠습니까? 귀하의 질문에 [이 중 하나 복제?] (http://stackoverflow.com/questions/7423489/objective-c-arc-errors-automatic-release-problems) –

  • +0

    ARC를 사용하지 프로젝트가 너무 복잡합니다 전원을 켜십시오. – oberbaum

    +0

    이 기호는 4.3 lib에 없으므로 누구에게 요청했는지 궁금합니다. dirs로 가서'nm libobjc.A.dylib | grep retain', 4.3에서는 _SEL_retain 심볼 하나만 보일 것입니다. 프로젝트를 청소하고 다시 만들려고 했습니까? –

    답변

    28

    빌드 설정에 -fobjc-arc 추가 =>는 ARC를 사용하는 라이브러리를 사용하여 이전의 iOS에서 실행 빌드 /하려는 경우이 문제가 발생합니다 다양한 구성

    +1

    전체 프로젝트에서이 강제 활성화 호를 사용하지 않습니까? 아크를 사용하지 않는 것은 아닌가? – stigi

    +1

    아니요, 전체 프로젝트에서 강제로 실행하지는 않습니다. – mackross

    +4

    ** 컴파일러 ** 플래그가 아닌 ** 링커 ** 플래그로 사용하므로 링크 타임에만 컴파일 타임에 ARC에 영향을 미치지 않습니다. – 0xced

    1

    기타 링커 플래그 (OTHER_LDFLAGS) 4 장치. 빌드 설정 =에서

    > 기타 링커 플래그

    • 아직 해결되지 않으면, -weak_library /usr/lib/libobjc.A.dylib