[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Процесс Си-компиляции - Обзор
Цель этого приложения - описать фазы компиляции Си-программ и научить
настраивать компилятор под ваши нужды. Си-компилятор преобразует Си-
текст в кодах ASCII в выполняемый объектный код. Процесс компиляции
разделен на четыре фазы:
. Препроцессор
- Осуществляет вставку исходных текстов из других файлов (#include)
- Заменяет вхождения имен, для которых определена замена (#define)
- Осуществляет условную обработку исходного файла (#ifdef)
- Уничтожает комментарии
. Транслятор
- Преобразует конструкции языка Си в конструкции ассемблера
- Осуществляет проверку наличия синтаксических ошибок
- Эта фаза занимает больше всего времени
. Ассемблер
- Преобразует конструкции языка ассемблера в машинные команды
. Редактор связей
- Осуществляет сборку main и других объектных файлов в загружаемый
модуль
- Просматривает библиотеки для разрешения внешних ссылок
- Осуществляет подготовку выполняемого кода
Фактически cc - это управляющая программа, которая последовательно
вызывает с помощью fork и exec другие программы, как фазы процесса
компиляции. Каждой фазе соответствует свои опции, и у каждой фазы свои
сообщения об ошибках. Раздел ФАЙЛЫ на странице Руководства cc(1)
указывает, где может быть найдена каждая исполняемая фаза. В общем
случае, фазы процесса компиляции не должны вызываться явно. Их вызов
осуществляет команда cc(1). Каждая фаза использует файлы для передачи
своего вывода следующей фазе. Все фазы описаны в секции 1 Справочного
руководства пользователя ОС UNIX+ System V. Компилятор ссылается на
cc(1), препроцессор - на cpp(1), ассемблер - на as(1), редактор связей
- на ld(1).
ПРОЦЕСС СИ-КОМПИЛЯЦИИ
ОБЗОР
ФОРМАТ: cc [опции] prog.c [опции]