[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.
Mattias
More information about the Lazarus
mailing list