object file .o / .obj

It contains object code. The code is not directly executable as there is position-dependent code.

This means that parts of these need to be relocated.

This means that they use symbols as placeholders, and a linker substitutes these for actual memory addresses.