Back to Basics: The Structure of a Program
summary
Covers exactly what the compiler and linker do: conversion of each .cpp into one object file, phases 1–9 of translation, and how macros/includes produce huge translation units (main.i becomes 41,625 lines with gcc 10.2 on Ubuntu 18.04). Explains the Itanium ABI vs MS ABI, why name mangling encodes types, the one-definition rule and when inline permits multiple definitions, and which linker tools (ld, gold, lld, link.exe) fail or succeed at resolving symbols.
AI-written summary · about
chapters (15)
- 0:00Start
- 1:18Goals
- 2:52Building and Running a C++ Program
- 3:58Input Files
- 6:44C++ Programming Ecosystem - Building Executables
- 9:56C++ Programming Ecosystem - Building Dynamic Libraries
- 10:32C++ Programming Ecosystem - Building Static Libraries
- 11:47How do We Represent C++ Programs?
- 13:30Building a C++ Executable
- 18:05Phases of Translation (3)
- 28:03Declarations and Definitions
- 37:47Internal Linkage
- 52:22Name Mangling
- 55:40Linking Linking is the final stage of compilation, performed by the linker
- 56:31Loading and Running . The operating system loader validates the executable Image file
related talks
01h 06mBack to Basics: Functions in C++
01h 03mto pass and return, the story of functions, values and compilers
52mBuilding Bridges: C++ Interop, Foreign Function Interfaces & ABI
58mThe Preprocessor: Everything You Need to Know and More!
01h 05mBack To Basics: Overload Resolution
01h 50mUnderstanding Compiler Optimization
01h 02mBinary compatibility 100
01h 49mKeynote: What C++ is and what it will become
