Компиляция и сборка программ на 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
На этой схеме есть много новых понятий - препроцессор, компоновщик, ассемблер. Рассмотрим каждое из них подробнее.