这一定是一个普遍的问题,但我会感激任何帮助。我有一个Xcode 4.2项目,它不会没有错误地构建。问题是iOS的XMPPFramework。我已经按照维基上的说明进行操作了。
我并不是在深层次了解发生了什么,但Xcode无法找到我的XMPPFramework(适用于iOS)。这是错误,我不知道如何解决它。我在项目和目标设置中添加了XMPPFramework的路径。我的XMPPFramework文件位于我的Xcode项目的根目录,但Xcode似乎无法找到这些文件。什么是用户标头路径,框架路径和库搜索路径?我已经将XMPPFramework的路径添加到所有这些字段而没有任何好处。我使用了$(继承)和$(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_iPhone.o中的[AppDelegate_iPhone xmppStream:didNotAuthenticate:] - AppDelegate_iPhone.o中的[AppDelegate_iPhone xmppStream:didReceiveIQ:] - AppDelegate_iPhone.o中的[AppDelegate_iPhone xmppStream:didReceiveMessage:] ...“_ OBJC_CLASS _ $ _ DDLog”,引自: AppDelegate_iPhone.o中的objc-class-ref“_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”,引自: AppDelegate_iPhone.o中的objc-class-ref“_OBJC_CLASS _ $ _ XMPPRoster”,引自: AppDelegate_iPhone.o中的objc-class-ref“_OBJC_CLASS _ $ _ XMPPvCardCoreDataStorage”,引自: AppDelegate_iPhone.o中的objc-class-ref“_OBJC_CLASS _ $ _ XMPPvCardTempModule”,引自: AppDelegate_iPhone.o中的objc-class-ref“_OBJC_CLASS _ $ _ XMPPvCardAvatarModule”,引自: AppDelegate_iPhone.o中的objc-class-ref“_OBJC_CLASS _ $ _ XMPPCapabilitiesCoreDataStorage”,引自: AppDelegate_iPhone.o中的objc-class-ref“_OBJC_CLASS _ $ _ XMPPCapabilities”,引自: AppDelegate_iPhone.o中的objc-class-ref“_OBJC_CLASS _ $ _ XMPPPresence”,引自: AppDelegate_iPhone.o中的objc-class-ref“_OBJC_CLASS _ $ _ XMPPJID”,引自: AppDelegate_iPhone.o中的objc-class-ref AccountViewController.o中的objc-class-ref AddBuddyViewController.o中的objc-class-ref ChatViewController.o中的objc-class-ref GroupChatViewController.o中的objc-class-ref ld:找不到架构i386的符号
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
答案 0 :(得分:3)
没关系,明白了。您不能只将文件拖放到项目中。您必须将它们复制到项目文件夹中,然后添加它们。
答案 1 :(得分:0)
作为附加组件,我想说,如果您使用的是Xcode 4.6.1或更高版本,那么将文件复制到项目文件夹并将其拖放到Xcode的例程也无法解析此链接器错误。
此处的解决方法是在Xcode项目中自己创建“组”(右键单击>新组),然后通过拖放将相应的文件/文件夹添加到这些组中。确保不要选中“将文件复制到源文件夹”选项。但是,请务必选中“添加到目标”选项。要了解要创建的组,您可以查看他们的示例XMPP项目。在同一层次结构中创建它们,如该项目中所示。
还要确保已将CoreData.framework和SystemConfiguration.framework包含到框架中。
如果以某种方式,您仍然无法使其正常工作,我建议您查看从您的Git链接下载的XMPPFramework主副本中包含的示例XMPP项目。检查他们如何按组排列文件以及项目的文件夹结构。只要按照套房,你应该很好。