Все шаги, необходимые для понимания компиляции

4 этапа компиляции gcc

1- Предварительная обработка

2- Компиляция

3- Сборка

4- Связывание

Хорошо! Теперь, когда мы знаем 4 стадии… что они делают?

Предварительная обработка

Это первая фаза, на которой выходные данные сохраняются в «filename.i». На этом этапе с вашим кодом происходит несколько вещей.

Давайте посмотрим, что сейчас находится внутри нашего файла test.c.

Давайте посмотрим, как выглядит файл после предварительной обработки с помощью

gcc -E test.c -o

Здесь произошло несколько вещей. Комментарии были удалены, макросы расширены, а включенные файлы расширены.

Компиляция

На этом этапе вывод сохраняется в «filename.s. Это этап сборки и вот так выглядит файл, когда мы запускаем gcc -S test.c

сборка

Результат этого этапа сохраняется в «filename.o». Когда мы запускаем gcc -c test.o, вот что мы получаем.

Этот код преобразуется в машинный язык.

Связывание

Завершающим этапом процесса компиляции является компоновка. Этот процесс берет все определения и все функции и связывает их вместе. Фактическая терминология для программы, выполняющей этот процесс, называется компоновщиком. Чтобы программа работала от начала до конца, компоновщик добавляет в наш код дополнительный код.