2012-02-02 2 views
3

Это должно быть распространенной проблемой, но я буду признателен за любую помощь. У меня есть проект Xcode 4.2, который просто не будет строить без ошибок. Проблема заключается в XMPPFramework для iOS. Я уже следил за указаниями на вики.Xcode не может найти XMPPFramework - как вы исправляете ошибки компоновщика?

Я не понимаю на самом деле, что происходит, но Xcode не может найти мою XMPPFramework (для iOS). Вот ошибка, и я не знаю, как ее исправить. Я добавил путь к XMPPFramework в настройках проекта и цели. Мои файлы XMPPFramework находятся уже в корне моего проекта Xcode, но Xcode не может найти файлы. Что такое путь заголовка пользователя, путь к базе данных и путь поиска библиотеки? Я добавил путь к XMPPFramework ко всем этим полям без какой-либо выгоды. Я использовал $ (унаследованный) и $ (SRCROOT) и проверил рекурсивную кнопку. Все мои замечания к тому, кто может помочь мне исправить это.

Undefined symbols for architecture i386:
"_ExtractFileNameWithoutExtension", referenced from: -[AppDelegate_iPhone contextDidSave:] in AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStreamDidSecure:] in AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStreamDidConnect:] in AppDelegate_iPhone.o -[AppDelegate_iPhone xmppStreamDidAuthenticate:] in AppDelegate_iPhone.o -[AppDelegate_iPhone 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", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_DDTTYLogger", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPStream", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPReconnect", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPRosterCoreDataStorage", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPRoster", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPvCardCoreDataStorage", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPvCardTempModule", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPvCardAvatarModule", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPCapabilitiesCoreDataStorage", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPCapabilities", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPPresence", referenced from: objc-class-ref in AppDelegate_iPhone.o "_OBJC_CLASS_$_XMPPJID", referenced from: objc-class-ref in AppDelegate_iPhone.o objc-class-ref in AccountViewController.o objc-class-ref in AddBuddyViewController.o objc-class-ref in ChatViewController.o objc-class-ref in GroupChatViewController.o ld: symbol(s) not found for architecture i386

лязг: ошибка: команда линкер потерпела неудачу с кодом выхода 1 (используйте опцию -v, чтобы вызов)

ответ

3

Nevermind, понял это. Вы не можете просто перетаскивать файлы в проект. Вы должны скопировать их в папку проекта, а затем добавить их.

+1

Человек, это так раздражает. Спасибо за совет! –

0

В качестве дополнения я хотел бы сказать, что если вы используете Xcode 4.6.1 или новее, тогда процедура копирования файлов в папку проекта и перетаскивание их в Xcode также не решит эту проблему Ошибка компоновщика.

Обходной путь здесь заключается в том, чтобы создать «Группы» самостоятельно в проекте Xcode (Right Click-> New Group), а затем добавить соответствующие файлы/папки в эти группы, перетащив их. Убедитесь, что вы не отметили опцию «Скопировать файлы в исходную папку». Однако не забудьте проверить параметр «Добавить в цель». Чтобы узнать, какие группы создавать, вы можете посмотреть их примерный проект XMPP. Создайте их в одной иерархии, как показано в этом проекте.

Также убедитесь, что вы включили CoreData.framework и SystemConfiguration.framework в Framework.

Если вы каким-то образом не сможете заставить его работать, я бы предложил вам посмотреть пример проекта XMPP, включенный в основную копию XMPPFramework, которую вы загрузили из своей ссылки Git. Проверьте, как они упорядочили файлы в группах и структуру папок их проекта. Просто следуйте сюиту, и вам должно быть хорошо.

Смежные вопросы