I'm creating a simple chat app with Quickblox.
So I added the project to XCode exactly like in this tutorial: http://quickblox.com/developers/IOS-how-to-connect-Quickblox-framework
QBUsers class worked just fine, but when I used QBChat I started to get linker errors:
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)
Here's the line that causes the problem (if I comment it out, linker errors go away):
[[QBChat instance] setDelegate:self];
The class in which the problem occurs implements the following protocols:
<QBActionStatusDelegate, QBChatDelegate>
Here's the list of frameworks I imported to the project:
-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
As it was suggested in comments by Greg Parker, I added libc++.dylib to the project and everything worked.
I had the same problem, I added the libc++ and resolved
For iOS9 do following in your application's target: in build phases->Link Binary With Libraries ->search and add 'libstdc++.tbd'
In case you're trying to add this in a library target this won't work. the 'libstdc++.tbd' is not an object file so it can't be added into an objective-c library's target, it needs to be added in an application that wants to use the library.