Компиляция и сборка программ на C++ [в разработке]
При написании программ на С++ критически важно понимать, как из исходного кода генерируется готовая программа.
C++ - это компилируемый язык, что значит, что программы на C++ компилируются в готовый исполняемый файл. Но на самом деле, в процессе генерации исполняемого файла учавствует не только один компилятор.
Давайте рассмотрим процесс обработки исходного кода на С++ подробнее.
Общая схема
flowchart TD
A("Исходная программа") --> B["Препроцессор"]
B -->|Модифицированная исходная программа| C["Компилятор"]
C -->|Целевая ассемблерная программа| D["Ассемблер"]
D -->|Перемещаемый машинный код| E["Компоновщик/загрузчик"]
G("Библиотечные файлы") --> E
H("Перемещаемые объектные файлы") --> E
E --> F["Целевой машинный код"]
classDef file fill:grey;
class A file
class G file
class H file
На этой схеме есть много новых понятий - препроцессор, компоновщик, ассемблер. Рассмотрим каждое из них подробнее.