Linker and Loaders
Note: please read from top to bottom

Object File - this is the compiled source code
Linker - Combines Object Files and libraries into an executable
Executable is then stored in secondary storage
Loader - brings executable into memory
Relocation - assigns addresses to parts of the program, then changes parts of the program to match respective addresses
dynamically linked libraries - are loaded as needed, these libs are not compiled into the executable, most OS do this