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).