[DUG] Delphi linker and library units

Kyley Harris KyleyHarris at gmail.com
Wed Aug 10 16:09:57 NZST 2005


my speculation stands corrected ;) if your answer is more concrete than 
mine :) it does sound reasonable.

Dennis Chuah wrote:

>
> This is incorrect. The compiler optimisation switch does not control 
> how the linker works. Basically any unit level procedures and 
> functions or symbol that are not referred to are removed by the 
> linker, optimisation or not. All static or class methods are similarly 
> treated. Any virtual or dynamic methods, even private ones, are NOT 
> elliminated by the linker and will always be included. Code in the 
> initialization section and in the DPR is always included.
>
> In a DPK, the whole DCU is included.
>
> Related ... all class data members are always created when a class is 
> constructed, even unused private members.
>
>> From: Kyley Harris <KyleyHarris at gmail.com>
>> Date: Wed, 10 Aug 2005 15:01:45 +1200
>>
>> Delphi links the entire DCU into the application. The idea is to keep 
>> dcu's as concise as necessary, and to remove
>> unneeded ones from the uses clauses. with Optimization turned on when 
>> you compile a dcu it will remove any
>> lines of code that are perceived as unnecessary to the application.
>>
>> John Bird wrote:
>>
>>> A question about how Delphi works...
>>>
>>> 1 - Main question is about Library routines. I maintain a library 
>>> unit with
>>> a lot of (non-visual) procedures and functions for various 
>>> miscellaneous
>>> tasks - date formatting, number formatting, file i/o etc. Some 70 
>>> routines
>>> and growing. Now when I use this unit in a program, does (a) 
>>> everything in
>>> the unit get compiled and linked in, or (b) is it smart enough just 
>>> to get
>>> just the code called (including library procedures called from another
>>> called from the program). I have come from another language where it 
>>> always
>>> did (b), hoping Delphi is as smart. If not, then I need to separate my
>>> library procedures into smaller logically related units rather than one
>>> humungous big unit with everything in it to avoid the programs getting
>>> bloated with non-used code.
>>>
>>> John B
>>> ______________________________________________
>>> Delphi mailing list
>>> Delphi at ns3.123.co.nz http://ns3.123.co.nz/mailman/listinfo/delphi
>>>
>>>
>>> _______________________________________________
>>> Delphi mailing list
>>> Delphi at ns3.123.co.nz
>>> http://ns3.123.co.nz/mailman/listinfo/delphi
>>>
>>>
>>>
>> _______________________________________________
>> Delphi mailing list
>> Delphi at ns3.123.co.nz
>> http://ns3.123.co.nz/mailman/listinfo/delphi
>
>
> _________________________________________________________________
> Shop ‘til you drop at XtraMSN Shopping 
> http://shopping.xtramsn.co.nz/home/
>
> _______________________________________________
> Delphi mailing list
> Delphi at ns3.123.co.nz
> http://ns3.123.co.nz/mailman/listinfo/delphi
>


More information about the Delphi mailing list