qskinny icon indicating copy to clipboard operation
qskinny copied to clipboard

linking Qt libs with explicit minor version numbers

Open uwerat opened this issue 1 year ago • 0 comments

While Qt takes care of keeping the public API stable this is not the case for the semi-public ( a.k.a as private ) headers.

Unfortunately it is not possible to implement a library like QSkinny without using the semi-public API. In this respect QSkinny is like a Qt module, that is also using this extra API from other Qt modules.

So we have the problem that a QSkinny library, that was built with Qt 6.5, runs against a Qt 6.6.x without having a SONAME that prevents potential incompatibilities.

One solution to this problem could be to link against f.e libQt6Quick.so.6.5 - instead of libQt6Quick.so.6.

For some reason Qt6 installations do not offer the required link - in opposite to Qt5 installations - and we might end up with having to add the patch level too:

libQt5Quick.so -> libQt5Quick.so.5.15.8
libQt5Quick.so.5 -> libQt5Quick.so.5.15.8
libQt5Quick.so.5.15 -> libQt5Quick.so.5.15.8
libQt5Quick.so.5.15.8

and

libQt6Quick.so -> libQt6Quick.so.6
libQt6Quick.so.6 -> libQt6Quick.so.6.4.2
libQt6Quick.so.6.4.2

uwerat avatar Apr 05 '23 16:04 uwerat