An object file is an intermediate file produced by a compiler. It contains compiled machine code and data, a segment of a program that is not yet ready to run. These isolated fragments are later combined by a linker to form a complete executable application.