Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
[solved] QXmpp - problem with undefined reference to
I try to use qxmpp library in my project (I don't want static linking), but while building there are some problems with this library: "undefined reference to...".
I'm not sure if I do everything properly.
I build qmpp library using Qt Creator as it was wrote in readme file.
And I get build-qxmpp folder with builded library. Next I write:
LIBS += qxmpp/src/base
And when I start to build my project the problem shows up.
I saw common topic on forum, but there were advices to static linking, that I don't want to.
Could you explain me where I do something wrong? Maybe I link wrong or my project is builded wrong.
If you need any information please ask, I wish to solve this problem quick :D
First thing I can see you have mixed these two statements:
INCLUDEPATH is where you give the path to the headers
LIBS is where you give the path to the libraries you link to and the libs themselves e.g.
@LIBS += -Lpath_to_your_library -llibraryname_without_the_lib_prefix@
Sorry, wrong rewrite (I'm little bit tired)
Of course I have:
INCLUDEPATH += qxmpp/src/base
You are still missing the -l with the library name
Ok, now I hav also -lqxmpp0
But know it shows
"cannot find -lqxmpp0"
doesn't point to the right place. As a quick fix, give the full path to the folder containing the lib. You can then later add some logic to get it from the build dir.
I gave the full path to the library, but now it says:
" cannot find C:... : Permission denied".
But this folder exist, so I do not know why it cannot find it.
Ok, Now it works with full path to the library. Everything because of using forward slash instead of backslash. I checked it and instead of writing:
Thanks for help :D
I'm doing everything too fast. I have one more problem
When I build/re-build project it works with:
But when I compile it, it doesn't work with it, it works only if I use full path
This is very strange.
That's strange. Qt uses unix style forward slashes everywhere so it should work out of the box. Do you have spaces in your path ?
build-qxmpp/src is a relative path. So depending on where the rest of your code is compiled, it can't be found at linking time