Application Binary Interface (ABI)
ABI defines how compiled code interacts at the binary level: calling conventions, name mangling,
ABI defines how compiled code interacts at the binary level: calling conventions, name mangling,
Understanding Library Linking
Name mangling (name decoration) encodes C++ function signatures into unique symbol names for the linker. This enables function overloading and namespaces while maintaining linkage compatibility.
Object files (.o, .obj) are compiled but not yet linked binary files containing machine code, data, and metadata for the linker.
Linking can be static (library code copied into executable) or dynamic (library loaded at runtime). Each has trade-offs in size, deployment, and performance.
A translation unit is a single source file plus all its included headers after preprocessing. It's the basic unit of compilation in C++.