In computer science, object code, or an object file, is the representation of code that a compiler or assembler generates by processing a source code file.
Object files contain compact code, often called "binaries". A linker is typically used to generate an executable or library by linking object files together. The only essential element in an object file is machine code (code directly executed by a computer's CPU).
Object files for embedded systems might contain nothing but machine code; however, object files often also contain data for use by the code at runtime, relocation information, program symbols (names of variables and functions) for linking and/or debugging purposes, and other debugging information.
Read the rest of the article here