The linking process is a step in the compilation process where object files and shared objects are combined to produce an executable file.
Linking occurs in two main stages: symbol resolution and relocation.
Linking can produce dynamically-linked or static executable files.