2012-02-06 1 views
0

나는 내 프로젝트에 MailCore을 사용하려고하지만, 나는이 오류가 발생합니다 :MailCore 오류 IOS

Undefined symbols for architecture armv7: 
    "_MailCoreEnableLogging", referenced from: 
     -[ImapSync run] in ImapSync.o 
    "_OBJC_CLASS_$_CTCoreMessage", referenced from: 
     l_OBJC_$_CATEGORY_CTCoreMessage_$_CTCoreMessageBuisnessMail in CTCoreMessage+BuisnessMail.o 
    "_OBJC_IVAR_$_CTCoreMessage.myFields", referenced from: 
     -[CTCoreMessage(CTCoreMessageBuisnessMail) libetpanDateTime] in CTCoreMessage+BuisnessMail.o 
     -[CTCoreMessage(CTCoreMessageBuisnessMail) senderDate] in CTCoreMessage+BuisnessMail.o 
    "_OBJC_CLASS_$_CTCoreAccount", referenced from: 
     objc-class-ref in AttachmentDownloader.o 
     objc-class-ref in ImapSync.o 
    "_MailCoreDisableLogging", referenced from: 
     -[ImapSync run] in ImapSync.o 
    "_IfTrue_RaiseException", referenced from: 
     -[ImapFolderWorker fetchFrom:to:seqDelta:syncingNew:progressOffset:progressTotal:alreadySynced:] in ImapFolderWorker.o 
ld: symbol(s) not found for architecture armv7 

그러나이 methodes 모두가, 내가 MailCoreProject에서 그들을 볼 수 있습니다!

누군가 나를 도울 수 있기를 바랍니다.

답변

0

먼저 "Linked Frameworks and Libraries"목록에 libMailCore-ios.a를 추가했는지 확인합니다.

그렇다면 주 프로젝트를 다른 장치 용으로 컴파일하는 동안 MailCore 프로젝트가 한 장치 용으로 컴파일 된 것일 수 있습니다. 예를 들어,

는 MailCore 프로젝트는 시뮬레이터에 대한 컴파일 된
  • ... MailCore의 기호는 메인 프로젝트가 실제 iOS 장비에 대한 컴파일 된
  • x86 아키텍처에 대해 생성 된 ... 그래서 링커는 MailCore을 찾고 있었다
  • 이와하는 ARMv7 아키텍처 심볼 링커 불평하는 ARMv7 아키텍처 심볼은 동일한 장치 (또는 동일한 시뮬레이터)와 (빌드 세정 빌드)를 MailCore 서브 프로젝트를 재 구축하는 문제를 해결하기

발견되지 귀하의 주요 프로젝트로.

0

다음은 여러 가지 일 수 있습니다. 프로젝트에 MailCore를 어떻게 추가 했습니까? 정적 라이브러리로?

armv7 아키텍처 용으로 컴파일 된 파일이 누락되었습니다. 메일 코어 프로젝트의 "빌드 설정"에 추가되었는지 확인한 다음 빌드하십시오. 아마도 시뮬레이터 용 MailCore를 빌드 했으므로 이제 장치에서 실행하려고합니다. 이들은 분리되어야합니다.

또한 MailCore가 사용하는 모든 라이브러리 (예 : libetpan)가 올바르게 컴파일되었는지 확인해야합니다.

추신 : 귀하의 프로젝트에 MailCore를 추가하는 것은 간단한 과정이 아니지만 그만한 가치가 있습니다. :)