сборка с++ файлов

Как происходит сборка проекта на с++. Имеем нескольких cpp и h файлов: a.h, a.cpp , b.h, b.cpp и еще сколь угодно много таких файлов.

фотка 1

Сначала h файлы подставляются в соответствующие cpp файлы (то есть , в которых есть include этих h файлов).

Далее каждый cpp файл компилируется отдельно и получается соответствующий obj файл.

obj файл это файл типа таблицы разбитый на несколько частей.

В части internal попадает все, что объявлено static.

В части external попадает все остальное, а именно определения функции, переменные. Они могут быть определены (реализованы) в данном obj (их тип будет defined), а могут быть только объявлены (undefined).