Specifying static or shared libraries



  • Hello,

    I've been trying to update my static build process for Qt from version 5.11.3 and I notice a change in behaviour that causes problems.

    As best as I can tell, the generated file qtbase/src/corelib/qtcore-config.pri specifies where various libraries should be found. But using identical configuration specs and build environment I get different results for different versions of Qt. With version 5.11.3 I see

    QMAKE_LIBS_GLIB = -lgthread-2.0 -lglib-2.0

    which is what I would expect for a static build. But with 5.12.4 I get

    QMAKE_LIBS_GLIB = /usr/lib/libgthread-2.0.so /usr/lib/libglib-2.0.so

    There are similar discrepancies with ICU libraries.

    The result of these problems is that my final build scripts attempts to link shared libraries into a static executable, which is obviously wrong.

    Can anyone suggest what might have changed since version 5.11.3 and how I might fix this?

    More generally, is there any guide out there to help with debugging problems with qmake? I asked another question here: https://forum.qt.io/topic/104475/missing-dependencies-cross-building but got no answer.


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    That looks indeed a bit strange.

    Did you already check the [bug report system](https://bug reports.qt.io) ?

    You should also check with the 5.13 release to see if has the same behaviour.



  • Thanks for the response!

    I just looked at the bug report system and couldn't find a clear match though https://bugreports.qt.io/browse/QTBUG-77159 might be related. I'll file a new bug report if I don't get any answer soon.

    I have checked 5.13 and do get the same behaviour.


Log in to reply