I'm having a hell of a time finding documentation which clearly explains how to use a static library in Qt Creator.
I've created and compiled my static library using Qt Creator (New=>Projects\C++ Library=>Set type to "Statically Linked Library"). It compiles and spits out a ".a file".
The problem I encounter is when I try to use the library. I have another project that would like to use it (#include files in the library, etc) but I don't know the proper way to link with the library or include files from the library.
..from QT project creator
Is it
or
or
This should be as easy as it gets but for some reason it is EXTREMELY hard to pull up a search result for because there are so many hits of forums of people asking for help and I've followed every tip I can get but no help...
In your project that uses the library make the LIBS variable point to your lib's path.
To include files from the library, add the library folder to the INCLUDEPATH and then do a regular #include in your code files.
e.g:
Edited:
-L tells qmake that the path is a directory that it can search for libraries -l tells it that the path is a file, but take note of the observation below.
From the qmake docs:
The variant
doesn't work if you have both static
libLIBNAME.a
and dynamiclibLIBNAME.so
libs in the same folderPATH_TO_LIB_DIR
.In this case on my linux with QMake v 3.0 the dynamic one is linked by default.
To force linkage with static one you need to specify it explicitly without any options.
Note! that filename of lib: lib[nameOfLib].a and you have to pass only original part -l[nameOfLib]