Program, library and object file formats

Compiled machine code. A compiler turns each source file into an object file, with gaps left for the addresses of things defined elsewhere; a linker joins object files and libraries, fills the gaps and writes a program or library that the operating system loads and runs. Each system has its own formats: Windows uses PE (and before it NE and MS-DOS MZ), Linux and most Unix systems use ELF, and Apple’s systems use Mach-O. One .exe extension covers several formats, and so does .obj: see the .EXE overview and the .OBJ overview for how to tell them apart.

Formats