2016-10-21 2 views
1

내부에 다른 정적 라이브러리가있는 정적 라이브러리가 있습니다.
LibA 및 LibB라고합시다.
LibA는 외향 라이브러리이거나 LibA가 LibB를 내부적으로 호출하며 LibB가 바깥 쪽을 향한 함수 호출을 가지고 있지 않습니다.
LibA의 헤더가 extern C이므로 이름이 엉망이되지 않습니다.
나는 Swift를 사용하여이 라이브러리를 테스트했으며 완벽하게 작동합니다. 내가 LIBA과 LibB 모두 아키텍처 x86_64에 대한 내장되어 있는지 확인 만든
정적 라이브러리 사용

"_OBJC_CLASS_$_UIResponder", referenced from: 


    _OBJC_CLASS_$_AppDelegate in AppDelegate.o 


    "_OBJC_CLASS_$_UIViewController", referenced from: 


    _OBJC_CLASS_$_ViewController in ViewController.o 


"_OBJC_METACLASS_$_UIResponder", referenced from: 


_OBJC_METACLASS_$_AppDelegate in AppDelegate.o 


"_OBJC_METACLASS_$_UIViewController", referenced from: 


_OBJC_METACLASS_$_ViewController in ViewController.o 


"_UIApplicationMain", referenced from: 


_main in main.o 


ld: symbol(s) not found for architecture x86_64 


clang: error: linker command failed with exit code 1 (use -v to see invocation) 

: 나는의 Obj-C 프로젝트의 내부에 그것을 사용하려고하면
는 그러나, 나는 다음과 같은 오류를 얻을.
도움을 주시면 감사하겠습니다.

편집 :이 문제를 해결할 수있었습니다. 빌드 단계에서 링크 바이너리 라이브러리에 UIKit.framework를 추가해야했습니다. 이렇게하면 오류가 수정되어 내 라이브러리를 사용할 수있게되었습니다. 도와 주셔서 감사합니다!

+0

불평하는 기호는 UIKit에서 가져온 것입니다. 나는 그것이 당신의 라이브러리보다는 당신의 실제 앱과 관련이 있다고 추측 할 것이다. –

+0

~/Library/Developer/Xcode/DerivedData /에서 파생 데이터를 삭제 한 다음 정리하고 다시 빌드하십시오. 희망이 작동합니다. –

+0

UIKit이 프로젝트에 연결되어 있지 않은 것 같습니다. 더 큰 프로젝트에서 링크되어 있는지 확인하거나 링크 된 라이브러리에서 종속성을 제거하십시오. 저는 동적 인 프레임 워크로의 전환을 강력하게 제안합니다. –

답변

0

UIKit.framework을 앱 대상에 추가하십시오.

관련 문제