• Relocatable object file: Contains binary code and data in a form that can be combined with other relocatable object files at compile time to create an executable object file.
  • Executable object file: Contains binary code and data in a form that can be copied directly into memory and executed.
  • Shared object file: A special type of relocatable object file that can be loaded into memory and linked dynamically, at either load time or run time.

There is no unified address space; all addresses are relative to a particular section.

Examples

  • Modern x86-64 Linux and Unix systems use Executable and Linkable Format (ELF)
  • Windows uses the Portable Executable (PE) format. Mac OS-X uses the Mach-O format.

Usage

Show Symbol Tables

objdump -x obj.o