Операционная система UNIX. Руководство программиста

СОВЕТЫ И ПРЕДОСТЕРЕЖЕНИЯ


Чаще всего причиной возникновения трудностей является специфическая трактовка утилитой make понятия зависимостей. Если файл x.c содержит строку

#include "defs.h"

считается, что от defs.h зависит объектный файл x.o, но не исходный файл x.c. Если defs.h изменяется, с x.c ничего не делается, в то время как x.o должен быть создан заново.

Чтобы понять, какие действия будет делать make, очень удобно использовать опцию -n. Обращение

make -n

предписывает выводить команды, которые make должен вычислять, не тратя на самом деле времени на их выполнение.

Если абсолютно точно известно, что изменение в файле касается только его внешнего представления (например, вставка комментария во включаемый файл), использование опции -t может сэкономить уйму времени. Вместо запуска большого числа ненужных перекомпиляций make просто обновит времена изменения затронутых файлов. Так, команда

make -ts

приведет в соответствие времена модификации соответствующих файлов. Очевидно, при использовании опции -t требуется осторожность, поскольку данный режим обработки отменяет первоначальное назначение утилиты make и разрушает всю информацию о более ранних изменениях.



Содержание раздела