Компоновщик (linker) и загрузчик (loader)
Коротко: Компоновщик объединяет несколько скомпилированных объектных файлов и библиотек в одну исполняемую программу. Загрузчик операционной системы помещает эту программу в память и запускает её.
Подробнее: Каждый исходный файл компилируется отдельно в машинный код с открытыми ссылками (символами). Компоновщик разрешает эти ссылки, например вызов функции из другого файла. Статически связанные библиотеки встраиваются навсегда, динамические подключаются при запуске или загрузке.
Подробности
- Статическое связывание: всё в одном файле, …
См. также: промежуточное представление и оптимизация компилятора, виртуальная память и страничная организация