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

Sven Barth pascaldragon at googlemail.com
Mon Oct 8 15:16:02 CEST 2012


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.

Regards,
Sven





More information about the Lazarus mailing list