3

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

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

架构 i386 的未定义符号:
“_ExtractFileNameWithoutExtension”,引用自:AppDelegate_iPhone.o 中的-[AppDelegate_iPhone contextDidSave:] -AppDelegate_iPhone.o 中的[AppDelegate_iPhone xmppStreamDidSecure:] -AppDelegate_iPhone.o 中的[AppDelegate_iPhone xmppStreamDidConnect:] -AppDelegate_iPhone.o 中的[AppDelegate_iPhone xmppStreamDidAuthenticate:] -[AppDelegate xmppStream:didNotAuthenticate:] in AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStream:didReceiveIQ:] in AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStream:didReceiveMessage:] in AppDelegate_iPhone.o ... "_OBJC_CLASS_$_DDLog",引用自:objc-class-ref在 AppDelegate_iPhone.o "_OBJC_CLASS_$_DDTTYLogger" 中,引用自:AppDelegate_iPhone.o 中的 objc-class-ref "_OBJC_CLASS_$_XMPPStream”,引用自:AppDelegate_iPhone.o 中的objc-class-ref “_OBJC_CLASS_$_XMPPReconnect”,引用自:AppDelegate_iPhone.o 中的objc-class-ref “_OBJC_CLASS_$_XMPPRosterCoreDataStorage”,引用自:objc-class-ref AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPRoster",引用自:AppDelegate_iPhone.o 中的objc-class-ref "_OBJC_CLASS_$_XMPPvCardCoreDataStorage",引用自:AppDelegate_iPhone.o 中的objc-class-ref "_OBJC_CLASS_$_XMPPvCardTempModule",引用自:objc- AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPvCardAvatarModule" 中的类引用,引用自: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.o ld 中的 objc-class-ref : 未找到体系结构 i386 的符号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在 GroupChatViewController.o ld 中的 ChatViewController.o objc-class-ref 中:未找到架构 i386 的符号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在 GroupChatViewController.o ld 中的 ChatViewController.o objc-class-ref 中:未找到架构 i386 的符号

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

4

2 回答 2

3

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

于 2012-02-05T07:06:00.200 回答
0

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

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

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

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

于 2013-05-24T21:47:58.820 回答