[Lazarus] make clean is leaving more than 20MB stuff behind (this number is after compression!)

Mattias Gaertner nc-gaertnma at netcologne.de
Mon Oct 8 22:43:43 CEST 2012

On Mon, 08 Oct 2012 15:16:02 +0200
Sven Barth <pascaldragon at googlemail.com> wrote:

> Am 08.10.2012 14:58, schrieb Bernd:
> > 2012/10/8 Sven Barth <pascaldragon at googlemail.com>:
> >>> afaik .a result from compiling with -CX.
> >>
> >>
> >> No. They are necessary for DLL imports at least on the Windows platforms.
> >
> > citing the manual: http://www.freepascal.org/docs-html/prog/progse29.html
> >
> > "When a unit foo.pp is smartlinked, the name of the codefile is
> > changed to libfoo.a.
> >
> > Technically speaking, the compiler makes small assembler files for
> > each procedure and function in the unit, as well as for all global
> > defined variables (whether they’re in the interface section or not).
> > It then assembles all these small files, and uses ar to collect the
> > resulting object files in one archive. "
> Seems like the documentation regarding this isn't that up to date anymore...
> You just need to test yourself: create a unit with a bit of code and 
> compile using "-CX". At least on my system I haven't found a 
> "libUNITNAME.a" file. What I did find though when I add an import 
> ("external '...'") was a libimpUNITNAME.a file. It could be different on 
> a Linux system of course, but at least on Windows systems the compiler 
> works this way.
> Nevertheless: *.a files are created by the compiler and need to be 
> cleaned away as well.

Feel free to create a feature request.


More information about the Lazarus mailing list