Relocation is the process of assigning load addresses to various parts of a program and adjusting the code and data in the program to reflect the assigned addresses. A
linker usually performs relocation in conjunction with
symbol resolution, the process of searching files and libraries to replace symbolic references or names of
libraries with actual usable addresses in
memory before running a program.