Rational Developer for System z
PL/I for Windows, Version 8.0, Programming Guide

Linking your program

Starting the linker
Statically linking
Linking from the command line
Linking from a make file
Input and output
Search rules
Specifying directories
Filename defaults
Specifying object files
Using response files
Specifying executable output type
Producing an .EXE file
Producing a dynamic link library
Packing executables
Generating a map file
Linker return codes

The following sections describe how to link object files produced by the compiler into either an executable program file (.EXE) or dynamic link library (.DLL).

Every .EXE that you build must contain exactly one main routine, that is, exactly one procedure containing OPTIONS(MAIN). If no main routine exists, the linker complains that your program has no starting address. If more than one main routine exists, the linker complains that there are duplicate references to the name main.

Every .DLL that you build must have at least one module compiled with the DLLINIT compile-time option (see DLLINIT).

Rational Developer for System z
PL/I for Windows, Version 8.0, Programming Guide