[Lazarus] Lazarus GTK project dependencies

Sven Barth pascaldragon at googlemail.com
Thu Apr 14 11:01:22 CEST 2011


Am 14.04.2011 10:17, schrieb michael.vancanneyt at wisa.be:
>
>
> On Thu, 14 Apr 2011, Mattias Gaertner wrote:
>
>> On Thu, 14 Apr 2011 09:47:57 +0200 (CEST)
>> michael.vancanneyt at wisa.be wrote:
>>
>>>
>>>
>>> On Thu, 14 Apr 2011, zeljko wrote:
>>>
>>>> On Thursday 14 of April 2011 09:33:03 Michael Van Canneyt wrote:
>>>>> Hi,
>>>>>
>>>>> due to some other topic discussed on the mailing list, I thought
>>>>> I'd check
>>>>> the dependencies of a simple lazarus project. The result is shown
>>>>> below.
>>>>>
>>>>> I did this similar exercise a year or two ago, and the result has
>>>>> more than
>>>>> tripled !
>>>>>
>>>>> I wonder, why all these dependencies ??
>>>>> I mean, libselinux, libcairo, libexpat, libdirectfb, libfusion,
>>>>> libdirect
>>>>> (to name but a few), why do I need those ?
>>>>
>>>> You don't but gtk does (or cairo or some xlib).
>>>
>>> Hm. I did a quick check:
>>>
>>> fsb: >ldd /usr/lib/libgdk-x11-2.0.so.0 | wc -l
>>> 44
>>> fsb: >ldd /usr/lib/libqt-mt.so.3.3.8 | wc -l
>>> 31
>>> So Qt needs 31 libs, GTK uses 44. Many of the extra ones related to
>>> direct framebuffer
>>> access, which is total nonsense in a X environment.
>>
>> The gnome projects likes to split libs in smaller modules.
>> The number of libs is not that important. The size is more important:
>>
>> A gtk2 program:
>> ldd testgtk2 | cut -d' ' -f 3 | grep lib | xargs cat | wc -c
>> 14932491
>>
>> A qt program:
>> ldd testqt | cut -d' ' -f 3 | grep lib | xargs cat | wc -c
>> 53583219
>>
>> So Qt uses about 50MB, GTK uses 15MB.
>
> I get quite a different count:
>
> fsb: >ldd /usr/lib/libqt-mt.so.3.3.8 | cut -d' ' -f 3 | xargs cat | wc -c
> 7172681
> fsb: >ldd /usr/lib/libgdk-x11-2.0.so.0 | cut -d' ' -f 3 | xargs cat | wc -c
> 9804745
>
> 7 vs. 9 Mb. Just for the Qt/Gtk library.
>

But libgdk does not contain all dependencies that a GTK application 
needs (can't comment on QT though).

> And that only size matters is not quite correct: for each library the
> number
> of symbols in the libraries must be resolved. The more libraries must be
> resolved, the more work there is for the linker.
>
> That was the main issue in KDE: to reduce the number of symbols to be
> resolved. This meant, less libraries.

Regards,
Sven




More information about the Lazarus mailing list