2011-11-02 7 views
0

iOS 프로젝트에 정적 라이브러리를 포함하려고합니다. 본인은 운영자와 파일을 가져 모든 관련있는 .h하지만 나는이 오류를 받고 있어요 :iOS 프로젝트에 내 정적 라이브러리를 포함 할 때 오류가 발생했습니다.

ld: warning: ignoring file /Users/alexis/Library/Developer/Xcode/DerivedData/PlazappPartnerWorkspace-   cdrmloavlcqouugawmtqywiinqne/Build/Products/Debug-iphoneos/libPlazappPartnerLib.a, file was built for archive which is not the architecture being linked (i386) 
Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_LauncherViewController", referenced from: 
     objc-class-ref in AppDelegate.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

내가 아키텍처 유형의 문제가있는 것 같아요하지만 난 이유도 그 해결 방법에 이해가 안 돼요. 누군가 나에게 설명하고 해결 방법을 말해 줄 수 있습니까? 감사!

답변

1

라이브러리가 장치 (암 구조)에서 실행되도록 제작되었으며 시뮬레이터 (i386 아키텍처)에서 사용하려고합니다. 라이브러리 빌드 설정을 확인하십시오. 프로젝트 빌드 설정과 일치해야합니다.

개발을 위해 지방 라이브러리을 생성하십시오. lipo 명령은 친구입니다.

라이브러리에 존재하는 현재의 아키텍처를 확인하려면 다음

Architectures in the fat file: libPlazappPartnerLib.a are: armv6 armv7

그들은 대상 장치 또는 시뮬레이터를 함께 일치해야합니다 : 출력이 같아야합니다

 

    cd <path to library folder># in you case: /Users/alexis/Library/Developer/Xcode/DerivedData/PlazappPartnerWorkspace- cdrmloavlcqouugawmtqywiinqne/Build/Products/Debug-iphoneos 
    lipo -info libPlazappPartnerLib.a 
 

(터미널)을 에 대한 건물입니다.

+0

이미 모든 설정을 확인하고 iphoneos와 iphonesimulator에있는 .a 파일을 모두 시도했지만 아무 것도 변경하지 않았습니다. – Alexis

+0

오류 메시지에 언급 된 라이브러리의 아키텍처를 확인하십시오 (업데이트 된 답변 참조). 또한 검색 라이브러리 경로를 확인하십시오. 여러 복사본이있는 경우 잘못된 경로가 설정된 경우 Xcode에서 잘못된 복사본을 선택합니다. – djromero

+0

내가 말한 것처럼 lipo로 아키텍처를 점검했습니다. 전에 실수했을거야. 당신의 도움을 주셔서 감사합니다! – Alexis

관련 문제