Компилируемые языки программирования
GNU Toolchain GCC and Makefiles
Этапы компиляции языка Си:
- Препроцессор
- Макросы в компайл тайме
- Расширение .i
- gcc -E
- Компиляция
- Переводит язык Си в язык Ассемблера
- Расширение .s
- gcc -S
- Сборка (Assembly)
- Переводит язык Ассемблера в нечитаемый для человека байткод
- Называются объектными файлами
В них существуют "дырки" (holes).
Скажем при вызове printf скомпилированный объектный файл ещё не будет знать откуда printf брать.
- Расширение .0
- gcc -c
- Линковка
- Соединяет объектные .o файлы воедино
- Заполняя в них "дырки" (holes)
- Выдаёт на выходе исполняемый бинарный файл
- gcc (без флагов)
Ресурсы:
- Godbolt
- сайт с выводом компиляторов C в ассемблер