【问题标题】:Xcode can't find XMPPFramework--how do you fix linker errors?Xcode 找不到 XMPPFramework——如何修复链接器错误?
【发布时间】:2012-02-25 13:32:30
【问题描述】:

这一定是一个普遍存在的问题,但如果能提供任何帮助,我将不胜感激。我有一个 Xcode 4.2 项目,它不会在没有错误的情况下构建。问题是适用于 iOS 的 XMPPFramework。我已经按照维基上的指示进行了操作。

我不太了解发生了什么,但 Xcode 找不到我的 XMPPFramework(适用于 iOS)。这是错误,我不知道如何解决它。我在项目和目标设置中添加了 XMPPFramework 的路径。我的 XMPPFramework 文件位于我的 Xcode 项目的根目录中,但 Xcode 似乎找不到这些文件。什么是用户头文件路径、框架路径和库搜索路径?我已将 XMPPFramework 的路径添加到所有这些字段,但没有任何好处。我使用了 $(inherited) 和 $(SRCROOT) 并检查了递归按钮。我所有的观点都可以帮助我解决这个问题。

架构 i386 的未定义符号:
“_ExtractFileNameWithoutExtension”,引用自: -[AppDelegate_iPhone contextDidSave:] 在 AppDelegate_iPhone.o - [AppDelegate_iPhone xmppStreamDidSecure:] 在 AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStreamDidConnect:] 在 AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStreamDidAuthenticate:] 在 AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStream:didNotAuthenticate:] 在 AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStream:didReceiveIQ:] 在 AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStream:didReceiveMessage:] 在 AppDelegate_iPhone.o ...“_OBJC_CLASS_$_DDLog”,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_DDTTYLogger" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPStream" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPReconnect" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPRosterCoreDataStorage" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPRoster" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPvCardCoreDataStorage" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPvCardTempModule" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPvCardAvatarModule" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPCapabilitiesCoreDataStorage" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPCapabilities" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPPresence" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPJID" 中的 objc-class-ref,引用自: AppDelegate_iPhone.o 中的 objc-class-ref AccountViewController.o 中的 objc-class-ref AddBuddyViewController.o 中的 objc-class-ref ChatViewController.o 中的 objc-class-ref GroupChatViewController.old 中的 objc-class-ref:未找到架构 i386 的符号

clang: error: 链接器命令失败,退出代码为 1(使用 -v 查看调用)

【问题讨论】:

    标签: ios xcode4 build linker xmppframework


    【解决方案1】:

    没关系,想通了。您不能只是将文件拖放到项目中。您必须将它们复制到项目文件夹中,然后添加它们。

    【讨论】:

    • 伙计,这太烦人了。感谢您的提示!
    【解决方案2】:

    作为一个附加组件,我想说,如果您使用的是 Xcode 4.6.1 或更高版本,那么将文件复制到项目文件夹并将它们拖放到 Xcode 的例程也不会解决此链接器错误。

    这里的解决方法是在 Xcode 项目中自己创建“组”(右键单击->新建组),然后通过拖放将相应的文件/文件夹添加到这些组中。确保不要选中“将文件复制到源文件夹”选项。但是,请务必选中“添加到目标”选项。要了解要创建哪些组,您可以查看他们的示例 XMPP 项目。在相同的层次结构中创建它们,如该项目中所示。

    还要确保您已将 CoreData.framework 和 SystemConfiguration.framework 包含在框架中。

    如果不知何故,您仍然无法使其正常工作,我建议您查看您从他们的 Git 链接下载的 XMPPFramework 主副本中包含的示例 XMPP 项目。检查他们如何按组排列文件以及项目的文件夹结构。跟着套件走,你应该会很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多