[Qt-interest] binaries in Ubuntu versions
Oliver.Knoll at comit.ch
Oliver.Knoll at comit.ch
Mon Dec 1 12:52:20 CET 2008
Jeroen Wijnhout wrote on Monday, December 01, 2008 12:37 PM:
>> ...
>> Qt *is* binary compatible, so when you link your app against an old
>> Qt library, say 4.2.x, it should still run with a newer Qt 4.4.3 for
>> example.
>>
>
> That is generally true, however it is better to build a static
> version of your application.
Generally? I remember one "glitch" where the Trolls accidentally made a default argument (something like "int foo = 0") non-default. That broke the binary compatibility in the early 4.x days between two Qt versions (or was it even in the late 3.3.x days? Can't remember).
Apart from that an application linked dynamically against a 4.2.x Qt library still runs fine with a recent 4.4.3 library - at least "formally".
Off course the "behaviour" can (should not, but can) still change slightly between distinct Qt versions: fonts are rendered differently (which should not be a problem either when you use dynamic layouts - and everyone uses layout managers these days, right? ;), the QPainter might draw stuff slightly different (read: "better" ;) etc.
> A completely static application should
> work on any Linux platform with compatible kernel (for example the
> 2.6 series).
Usually the problem are the other libraries your application directly links against: C/C++ libraries (which shield most if not all "kernel" functions from your application), 3rd party libraries such as ImageMagick, EXIF libraries, SSL libraries, ... and it''s usually (not necessarily) those libraries which break "binary compatibility" - especially if a distribution makes a change in the gcc/g++ compiler and libs.
So yes, if you really compile *everything* static into your app (also the C/C++ libraries!) then I agree with you :)
Cheers, Oliver
More information about the Qt-interest-old
mailing list