3

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

Sergey
  • 47,222
  • 25
  • 87
  • 129

3 Answers3

25

As it was suggested in comments by Greg Parker, I added libc++.dylib to the project and everything worked.

Sergey
  • 47,222
  • 25
  • 87
  • 129
2

I had the same problem, I added the libc++ and resolved

intermat
  • 19
  • 2
  • This is pretty much a duplicate of the [accepted answer](http://stackoverflow.com/a/16881635/1366033). If you find an answer helpful, just vote it up (once you have permissions). There is no need to repeat efforts – KyleMit Dec 11 '13 at 19:54
2

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.

mbuster
  • 170
  • 14