2012-02-06 40 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

首先,我會檢查您是否已將libMailCore-ios.a添加到「鏈接的框架和庫」列表中。

如果是這樣,那麼問題可能是MailCore項目是針對一個設備編譯的,而您的主項目是針對不同設備編譯的。例如,

  • 的MailCore項目被編譯爲模擬器...是爲x86架構產生MailCore的符號
  • 你的主要項目是編制了真正的iOS設備......因此鏈接在尋找MailCore對於ARMv7架構符號
  • 因此,接頭抱怨,沒有發現

爲ARMv7架構符號爲了解決該問題,用相同的設備(或相同的模擬器)重建MailCore子項目(建立清潔和構建)作爲您的主要項目。

0

這些可能是一些事情。如何將MailCore添加到您的項目中?作爲一個靜態庫?

您缺少armv7架構的編譯文件。確保它被添加到MailCore項目的「構建設置」中,然後嘗試構建它。 您可能爲模擬器構建MailCore,現在您正試圖在設備上運行它。這些必須分開。

此外,您必須確保MailCore正在使用的所有庫(如libetpan)都已正確編譯。 PS:將MailCore添加到您的項目並不是一個簡單的過程,但它是值得的。 :)