Next: Programs
Up: Generated code
Previous: Generated code
When you compile a unit, the Free Pascal compiler generates 2 files :
- A unit description file (with extension .ppu, or .ppw on
WINDOWSNT).
- An assembly language file (with extension .s).
The assembly language file contains the actual source code for the
statements in your unit, and the necessary memory allocations for any
variables you use in your unit. This file is converted by the assembler to
an object file (with extension .o) which can then be linked to other
units and your program, to form an executable.
By default (compiler version 0.9.4 and up), the assembly file is removed
after it has been compiled. Only in the case of the -s command-line
option, the assembly file must be left on disk, so the assembler can be
called later. You can disable the erasing of the assembler file with the
-a switch.
The unit file contains all the information the compiler needs to use the
unit:
- Other used units, both in interface and implementation.
- Types and variables from the interface section of the unit.
- Function declarations from the interface section of the unit.
- Some debugging information, when compiled with debugging.
- A date and time stamp.
Macros, symbols and compiler directives are not saved to the unit
description file. Aliases for functions are also not written to this file,
which is logical, since they cannot appear in the interface section of a
unit.
The detailed contents and structure of this file are described in the first
appendix. You can examine a unit description file using the dumpppu
program, which shows the contents of the file.
If you want to distribute a unit without source code, you must provide both
the unit description file and the object file.
You can also provide a C header file to go with the object file. In that
case, your unit can be used by someone who wishes to write his programs in
C. However, you must make this header file yourself since the Free Pascal compiler
doesn't make one for you.
Next: Programs
Up: Generated code
Previous: Generated code
Michael Van Canneyt
Thu Sep 10 14:04:11 CEST 1998