мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| glossary:prog:compilation [2025/07/13 12:19] – ↷ Страница перемещена из glossary:compilation в glossary:prog:compilation radi0dev | glossary:prog:compilation [2025/11/09 12:07] (текущий) – внешнее изменение A User Not Logged in | ||
|---|---|---|---|
| Строка 2: | Строка 2: | ||
| (https:// | (https:// | ||
| + | |||
| + | Программа, | ||
| // | // | ||
| Строка 20: | Строка 22: | ||
| **Препроцессор** - это // | **Препроцессор** - это // | ||
| - | Хэдеры, | + | Хэдеры, |
| - | ==== Компиляция ==== | + | файлы программы проходят препроцессинг независимо друг от друга. |
| - | На данном шаге компилятор выполняет свою главную задачу - компилирует, | + | ==== Компиляция / Ассемблирование ==== |
| - | ==== Ассемблирование | + | Сначала файлы, прошедшие препроцессинг проходят через лексический анализатор, |
| + | |||
| + | На данном шаге компилятор | ||
| Так как x86 процессоры исполняют команды на бинарном коде, необходимо перевести ассемблерный код в машинный с помощью **ассемблера**. Ассемблер преобразовывает ассемблерный код в машинный код, сохраняя его в **объектном файле**. | Так как x86 процессоры исполняют команды на бинарном коде, необходимо перевести ассемблерный код в машинный с помощью **ассемблера**. Ассемблер преобразовывает ассемблерный код в машинный код, сохраняя его в **объектном файле**. | ||
| Строка 34: | Строка 38: | ||
| Далее возможно сохранение данного объектного кода в **статические библиотеки** для того, чтобы не компилировать данный код снова. | Далее возможно сохранение данного объектного кода в **статические библиотеки** для того, чтобы не компилировать данный код снова. | ||
| - | ==== Компоновка ==== | + | ==== Компоновка / Линковка ==== |
| - | Объектных файлов может быть много и нужно их всех соединить в единый исполняемый файл с помощью компоновщика (линкера). Он связывает все объектные файлы и статические библиотеки в единый исполняемый файл, который мы и сможем запустить в дальнейшем. Для того, чтобы понять как происходит связка, | + | Объектных файлов может быть много и нужно их всех соединить в единый исполняемый файл с помощью компоновщика (линкера). Он связывает все объектные файлы и статические библиотеки в единый исполняемый файл, который мы и сможем запустить в дальнейшем. Для того, чтобы понять как происходит связка, |