It is the machine code for one particular library or module that will make up the completed product.
It may also contain placeholders or offsets, not found in the machine code of a completed program, that the linker will use to connect everything together.
An object file is assumed to begin at a specific location in memory, often zero.
It contains information on instructions that reference memory, so that the linker can relocate the code when combining multiple object files into a single program.
A linker links several object (and library) files to generate an executable.