ВУЗ:
Составители:
42
функции «ДостичьЦели». Эта функция выполняет поиск правила, кото-
рое описывает обрабатываемую цель. В данном случае это первое пра-
вило make-файла. Для найденного правила запускается процедура обра-
ботки (функция «ОбработатьПравило»).
Сначала поочередно обрабатываются описанные в правиле зависи-
мости (функция «ОбработатьЗависимости»). Первая зависимость – объ-
ектный файл main.o. Поскольку в make-файле есть правило с такой це-
лью (функция «ЕстьТакаяЦель» возвращает true), то для цели main.o за-
пускается процедура «ДостичьЦели».
Функция «ДостичьЦели» ищет правило, где описана цель main.o.
Эта цель описана во втором правиле make-файла. Для этого правила за-
пускается функция «ОбработатьПравило», которая запускает процесс
обработки зависимостей (функция «ОбработатьЗависимости»). Во вто-
ром правиле указана единственная зависимость – main.cpp. Такой цели в
make-файле не существует, поэтому считается, что зависимость
main.cpp является именем файла. Далее, проверяется наличие этого
файла на диске (функция «ПроверитьНаличиеФайла») – такой файл су-
ществует. На этом процесс обработки зависимостей завершается.
После обработки зависимостей функция «ОбработатьПравило»
принимает решение о том, следует ли выполнять указанные в правиле
команды (функция «НужноВыполнятьКоманды»). Цели правила (файла
main.o) не существует, поэтому команды выполнять следует. Функция
«ВыполнитьКоманды» запускает указанную в правиле команду (компи-
лятор gcc), в результате чего создается файл main.o, так называемый
объектный файл (object file).
Цель main.o достигнута (объектный файл main.o построен). Теперь
make возвращается к обработке остальных зависимостей первого прави-
ла. Зависимости Editor.o и TextLine.o обрабатываются аналогично. Для
них выполняются те же действия, что и для зависимости main.o.
После того, как все зависимости (main.o, Editor.o и TextLine.o) об-
работаны, решается вопрос о необходимости выполнения указанных в
правиле команд (функция «НужноВыполнятьКоманды»).
Поскольку цель (iEdit) является именем файла, который в данный
момент не существует, то принимается решение выполнить описанную
в правиле команду (функция «ВыполнитьКоманды»).
Содержащаяся в правиле команда запускает компилятор gcc, в ре-
зультате чего создается исполняемый (бинарный) файл iEdit. Таким об-
разом, главная цель (iEdit) достигнута. На этом программа make завер-
шает свою работу.
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »