If you're having build problems, I feel bad for you, son. Because seriously, libjingle is a bitch to get compiled. If you can get it compiled for whatever platform you're building on, then you're 90% of the way there. It's really going to depend on you sitting down on a weekend and plowing through compiler issues one by one. Two quick pointers for Xcode: remove (but do not delete) all the windows-specific shit, and remove all files that have a main method (unittests and mains.)
Once you have it built, the API is actually rather straight-forward. The architecture of a typical libjingle application has several XMPP tasks that run. Some tasks are output tasks that will send out stanzas:
http://code.google.com/p/libjingle/source/browse/trunk/talk/examples/call/friendinvitesendtask.cc
(look at the Send method)
This should be pretty straight-forward. It builds up an XML stanza and queues it up for the XMPPclient to process.
There are also input tasks that process stanzas:
http://code.google.com/p/libjingle/source/browse/trunk/talk/examples/call/mucinviterecvtask.cc
(look at the HandleStanza method)
While this particular HandleStanza method is a shit-show, the gist of it is that this method is called for all XMPP messages. You first need to determine if you care about it or not:
if (stanza->Name() != QN_MESSAGE) return false;
Then you'll walk through the XML and pull out the info you need and signal parts of your app that care about this.
Of course, there's also the tunneling API, which is substantially more complicated and not really in the scope of a StackOverflow answer. If there's enough interest I can get into this, but I recommend that you first at least set up libjingle and pass around some XMPP messages before you dive into setting up tunnels.
One last pointer about using libjingle: be EXTREMELY careful about threading.