Explanations
The usage of the switches are not coherent with the manual of the GCC suite. (doc)
The linker searches a standard list of directories for the library, which is actually a file named liblibrary.a. The linker then uses this file as if it had been specified precisely by name.
The directories searched include several standard system directories plus any that you specify with -L.
There should be only names/filemanes appearing after -l
switches.
Please also note that if you specify a name and not a filename (with extension), the linker will look for a lib<name>.(a|so|dll)
file.
Example for qxmpp:
You specified -L" qxmpp-0.3.0/lib"
which adds the qxmpp-0.3.0/lib
directory (located in the current project directory) to the list of directory to parse when looking for libraries. Then -lqxmpp
instructs the linker to look within the directory list for a file named libqxmpp.a
.
Solving
Therefore, you must check for each not found library that : there is a -L
directive pointing to the right directory where the library stands (usualy ./
will refer to the root of the project, and ../
its parent directory etc), and check that you call for the library with a correct name in a -l
directive (either the full filemane, or the abbreviated name).