Link time

In computer science, link time refers to the period of time, during the creation of a computer program, in which a linker is being applied to that program.[1][2][3] Link time occurs after compile time and before runtime (when a program is executed).

It is common to speak of link time operations (the operations performed by a linker) or link time requirements (programming language requirements that must be met by compiled source code for it to be successfully linked).

The operations performed at link time usually include fixing up the addresses of externally referenced objects and functions, various kinds of cross module checks (e.g. type checks on externally visible identifiers and in some languages instantiation of templates). Some optimizing compilers delay code generation until link time because it is here that information about a complete program is available to them. Resolving external variables in a program is also done at link time.

The definition of a programming language may specify link time requirements that source code must meet to be successfully compiled (e.g. the maximum number of characters in an externally visible identifier that must be considered significant).

In some programming languages[which?] it may be necessary for some compilation and linking to occur at runtime.