Xcode 4.6架构armv7的未定义符号与静态库相关联

时间:2013-02-20 18:27:57

标签: shared-libraries static-libraries armv7 undefined-symbol xcode4.6

我将xcode更新为4.6后,目前遇到问题。

一开始,我收到很多链接错误。在其他帖子的帮助下,我能够解决它们。但是,每当我解决上一个问题时,总会出现新的问题。

现在,当我尝试在具有发布模式的设备上构建游戏时,我被困在“未定义的架构armv7符号”(发布和调试模式适用于模拟器,调试模式适用于设备)。我已经在网上研究过这个问题,但没有一个解决方案可以解决我的问题。这就是我想开始新职位的原因。

让我详细解释一下情况:

  1. 所有错误都发生在库中的调用方法中。
  2. 我的库在架构armv7之前可以正常工作(xcode 4.5)
  3. 项目文件中架构的当前值为“Standard(armv7,armv7s)
  4. Current Architecture的当前值为“armv7 armv7s armv6”
  5. 这是一个示例错误:

    尽管我只显示了与libReceiptVerification.multi.a相关的错误,但实际上错误发生在其他库中。

    // * ** * ** * ** * ** * 从此行 * ** * ** * ** * ****

    架构armv7的未定义符号:

    “_ OBJC_CLASS _ $ _ NSMutableOrderedSet”,引自:       libarclite_iphoneos.a(arclite.o)中的objc-class-ref

    “_ CFStringCreateWithBytes”,引自:        - libReceiptVerification.multi.a中的[JKSerializer serializeObject:options:encodeOption:block:delegate:selector:error:](JSONKit.o)       libReceiptVerification.multi.a中的_jk_cachedObjects(JSONKit.o)

    “_ CFStringCreateWithBytesNoCopy”,引自:        - [JKSerializer serializeObject:options:encodeOption:block:delegate:selector:error:] in libReceiptVerification.multi.a(JSONKit.o)

    “_ CFDataSetLength”,引自:       libReceiptVerification.multi.a中的__NSStringObjectFromJSONString(JSONKit.o)

    // * ** * ** * ** * ** * ** 在此结尾 * ** * ** * **** < /强>

    那么,有没有人对此问题有任何线索? 感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

通过设置

解决了同样的问题

Implicitly link Objective-C Runtime SupportNO

您可以在Project-&gt; Build Settings-&gt; Apple LLVM Compiler 4.2-Language下找到它。

或者在项目&gt;构建设置

中搜索Implicitly link Objective-C Runtime Support

答案 1 :(得分:0)

查看libarclite,JSONKit和其他所有的库目标,并确保它们也为其版本构建设置了相同的体系结构值。

此外,对于发布目标,“仅为构建活动体系结构”选中“否”。