Что происходит, когда вы вводите gcc main.c

GCC — это компилятор GNU C и программа, которую вы использовали бы для превращения исходного кода C в работающий исполняемый файл.

Когда вы вводите "gcc main.c", ваша оболочка сначала выполняет поиск и проверяет, является ли gcc псевдонимом, если нет, она проверяет, является ли он встроенным и чем если это программа. Как только ваша оболочка найдет местоположение gcc, она будет искать «main.c» в текущем каталоге и выполнять следующие шаги:

Шаг 1. Препроцессор
GCC берет ваш исходный код .c и запускает его через препроцессор.
Препроцессор удалит все комментарии, сделанные в исходном файле. Затем он добавит любой код файла заголовка, указанный в файле. Примером этого может быть #include ‹stdio.h› или ‹string.h› и т. д. Последним шагом препроцессора является замена любых макросов кодом. После того, как все это будет сделано, появится промежуточный файл «filename.i».

Шаг 2: Компилятор
Этот файл .i затем берется и пропускается через компилятор, чтобы преобразовать его в ассемблерный код. Ваше оборудование все еще не может прочитать это полностью. Файлы будут заканчиваться на «.s».

Шаг 3: Ассемблер
Ассемблер берет вывод компилятора (код на ассемблере) и превращает его в объектный код. Объектный код — это ваши двоичные нули и единицы, которые может понять ваше оборудование. Файлы заканчиваются на «.o».

Шаг 4: Компоновщик
Наконец, компоновщик возьмет любые другие объектные файлы, необходимые для программы, и добавит их. Linker также возьмет ваш готовый объектный код и свяжет его с любыми необходимыми библиотеками. Результатом будет ваш окончательный исполняемый файл.