2013-05-31 3 views
3

Я создаю простое приложение чата с QuickbloxQuickblox ошибка линкера:. Оператор удаление (пустоты *)», ссылка из

Так я добавил проект XCode точно как в этом учебнике: http://quickblox.com/developers/IOS-how-to-connect-Quickblox-framework

QBUsers класс работал нормально, но когда я использовал QBChat я начал получать ошибки компоновщика:

Undefined symbols for architecture i386: "operator delete(void*)", referenced from: -[QBVideoChat initAudioCapture] in Quickblox(QBVideoChat.o) "operator new(unsigned long)", referenced from: -[QBVideoChat initAudioCapture] in Quickblox(QBVideoChat.o) "___gxx_personality_v0", referenced from: Dwarf Exception Unwind Info (__eh_frame) in Quickblox(QBVideoChat.o) ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Вот линия, которая вызывает проблему (если я закомментировать, ошибки компоновщика уходят):

[[QBChat instance] setDelegate:self]; 

Класс, в котором возникает проблема реализует следующие протоколы:

<QBActionStatusDelegate, QBChatDelegate> 

Вот список структур я импортировал в проект:

-lxml2 -lresolv -lz -framework AVFoundation -framework CoreVideo -framework Accelerate -framework CoreMedia -framework AudioToolbox -framework CoreData -framework CoreLocation -framework CoreGraphics -framework MobileCoreServices -framework SystemConfiguration -framework CFNetwork -framework Quickblox -framework UIKit -framework Foundation

+0

Я включил все библиотеки, которые были в учебнике ... – Sergey

+0

Если вы действительно это сделали, попробуйте очистить проект. Иногда это помогает в таких проблемах. –

+4

У вас либо отсутствует стандартная библиотека C++, либо вы связались с неправильной стандартной библиотекой C++ (их два). Попробуйте добавить libC++ или libstdC++. –

ответ

25

Как предложено в комментариях по Greg Паркер, я добавил libC++. Dylib в проект, и все сработало.

+0

Да, вы можете найти эту информацию здесь http://quickblox.com/developers/IOS-how-to-connect-Quickblox-framework, а также –

+1

+1 помогли много – Buntylm

+0

Это сработало для меня с другим SDK, совершенно не связанным к Quickblox. Спасибо! – user3344977

2

У меня была такая же проблема, я добавил LibC++ и решил

+0

Это почти дубликат [принятого ответа] (http://stackoverflow.com/a/16881635/1366033). Если вы найдете ответ полезным, просто проголосуйте (если у вас есть разрешения). Нет необходимости повторять усилия. – KyleMit

1

Для iOS9 сделайте следующее в цель вашего приложения: в сборке phases-> Ссылка Двоичные с библиотеками -> поиск и добавить 'libstdC++ TBD.

Если вы пытаетесь добавить это в целевую библиотеку, это не сработает. «libstdC++. tbd» не является объектным файлом, поэтому его нельзя добавить в целевую цель объектной библиотеки, его нужно добавить в приложение, которое хочет использовать библиотеку.

+0

работает и для iOS8 :-) – Reckoner

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

  • Нет связанных вопросов^_^