определение GCC

GCC — интегрированный компилятор проекта GNU для языков C, C++, Objective C и Fortran; он способен получать исходную программу на любом из этих языков и генерировать бинарную исполняемую программу на языке машины, на которой она должна выполняться.

Параметрам предшествует тире, как это принято в UNIX, но сами параметры могут состоять из нескольких букв; Несколько опций не могут быть сгруппированы после одного и того же скрипта. Для некоторых опций после этого требуется имя каталога или файла, для других нет. Наконец, можно указать несколько имен файлов для включения в процесс компиляции.

Препроцессор

На этом этапе интерпретируются директивы препроцессору. Среди прочего, переменные, инициализированные с помощью #define, заменяют в коде свое значение во всех местах, где встречается их имя.

Предварительную обработку можно запросить с помощью любой из следующих команд; cpp относится конкретно к препроцессору.

$ gcc -E exple.c › exple.pp
$ cpp exple.c › exple.pp

Компилятор

Компиляция преобразует код C в язык ассемблера процессора нашей машины.
$gcc -S exple.c
выполнить первые два этапа, создав файл exple.s

Ассемблер

Assembly преобразует программу на ассемблере в объектный код, двоичный файл на машинном языке, исполняемый процессором

Ассемблер называется следующим образом:
$ as -o exple.o exple.s
создает файл объектного кода circle.or из файла языка ассемблера exple.s

связанный

Функции C/C++, включенные в наш код, такие как printf() в примере, уже скомпилированы и собраны в существующих в системе библиотеках. Нужно как-то включить бинарный код этих функций в наш исполняемый файл. Это этап компоновки, когда один или несколько модулей объединяются в объектный код с существующим кодом в библиотеках.

El enlazador se denomina ld. Команда для enlazar
$ ld -o exple exple.o -lc