MINGW-packages icon indicating copy to clipboard operation
MINGW-packages copied to clipboard

mingw-w64-clang-x86_64-qt6-static has dynamic dependencies

Open DragonCrafted87 opened this issue 3 years ago • 5 comments

using the static build of qt6 to build a static release executable

the resulting binary reports the following missing dlls when ran on a clean windows 10 machine

libmng-2.dll libpcre2-16-0.dll libtiff-5.dll libjasper-4.dll

there are probably others as the app I am using to setup my build only really touches qt core and widgets libraries

DragonCrafted87 avatar Dec 10 '21 00:12 DragonCrafted87

I can confirm this , can not build qt6 static not with qmake nor with cmake

foxoman avatar Jan 12 '22 17:01 foxoman

I confirm too. Up to now, still need libjasper-4.dll and libjpeg-8.dll.

youngbe avatar May 12 '22 11:05 youngbe

I tried with mingw32/mingw-w64-i686-qt6-static 6.2.1-2, and there were still at least two:

libb2 libjasper

My installation was not clean, but I changed the makefile to pass the -t option to ld (-Wl,-t to g++) so it prints all input files with full path, and there were no ".so" files present. Even those linked with -l, like -lwebpdemux, resolve to a static ".a" library.

Nnarol avatar Aug 07 '22 11:08 Nnarol

The main hurdle is that CI can not compile the qt static package due to the size of it. One package maintainer has to dedicate an entire day for it.

Biswa96 avatar Aug 07 '22 12:08 Biswa96

Oh, so that's what's happening! Thanks for the explanation, @Biswa96!

Would it be possible to divide the distributed library into its original architectural modules (EDIT: https://doc.qt.io/qt-6/qtmodules.html) or into larger module groups? That way, people could install e.g. qt6-core-static, qt6-widgets-static or, using a less granular approach, qt6-base-static, qt6-extension1-static, etc.?

As an alternative, since a static library is just an archive of different objects or sublibraries, could individual components not be tested by the CI instead of the actual, distributed package while there is a proper solution? Although that way, CI tests would not match the system in production, but they would be an approximation. The current state is buggy anyway.

Nnarol avatar Aug 10 '22 20:08 Nnarol