Основы программирования в Linux
Шрифт:
Make-файл читается командой
Опции и параметры make
У программы
Для того чтобы заставить команду
Зависимости определяют, как каждый файл в окончательном приложении связан исходными файлами. В программном примере, приведенном ранее в этой главе, вы могли бы установить зависимости, говорящие о том, что вашему окончательному приложению требуются (оно зависит от) main.о, 2.о и 3.o; и также для main.о (main.c и a.h); 2.o (2.с, a.h и b.h) и 3.o (3.c, b.h и c.h). Таким образом, на файл main.о влияют изменения файлов main.c и a.h, и он нуждается в пересоздании с помощью повторной компиляции файла main.c, если был изменен любой из двух указанных файлов.
В make-файл вы записываете эти правила, указывая имя задания, двоеточие, пробелы или табуляции и затем разделенный пробелами или табуляциями перечень файлов, применяемых для создания выходного файла задания. Далее приведен список зависимостей для ранее приведенного примера:
Список свидетельствует о том, что myapp зависит от main.о, 2.o и 3.o, a main.o зависит от main.c и a.h и т. д.
Данный набор зависимостей формирует иерархию, показывающую, как исходные файлы связаны друг с другом. Вы легко можете увидеть, что если изменяется b.h, то придется пересмотреть 2.o и 3.o, а поскольку 2.o и 3.o будут изменены, вам придется перестроить и myapp.
Если вы хотите собрать несколько файлов, можно использовать фиктивную цель или задание
И еще раз, если вы не включите задание
Второй, компонент make-файла — правила или инструкции, описывающие способ создания выходного файла задания. В примере из предыдущего раздела какую команду следует применить после того, как команда
В данный момент мы должны информировать вас об очень странной и неудачной синтаксической записи, применяемой в make-файлах: разнице между пробелом и табуляцией. Все правила должны представлять собой строки, начинающиеся со знака табуляции; пробел не годится. Так как несколько пробелов и табуляция выглядят почти одинаково и поскольку почти во всех других случаях, касающихся программирования в системе Linux, нет большой разницы между пробелами и табуляциями, это может вызвать проблемы. Кроме того, пробел в конце строки в make-файле может вызвать сбой при выполнении команды
А теперь выполните упражнение 9.1.
Большинство правил или инструкций состоит из простой команды, которая могла бы быть набрана в командной строке. Для примера создайте свой первый make-файл Makefile1:
Вечный. Книга IV
4. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
рейтинг книги
Досье «ОДЕССА»
Детективы:
политические детективы
рейтинг книги
Нейромант. Трилогия «Киберпространство»
Фантастика:
боевая фантастика
киберпанк
рейтинг книги
Дон Кихот. Шедевр мировой литературы в одном томе
Проза:
классическая проза
рейтинг книги
Мир приключений 1984 г.
Альманах "Мир приключений"
Фантастика:
научная фантастика
рейтинг книги
Дважды одаренный. Том IV
4. Дважды одаренный
Фантастика:
городское фэнтези
альтернативная история
аниме
рейтинг книги
Офицер
1. Офицер
Фантастика:
боевая фантастика
рейтинг книги
Стёртые буквы
Фантастика:
фэнтези
рейтинг книги
Северные сказки
Детские:
сказки
рейтинг книги
Вызов экуменизма
Научно-образовательная:
религиоведение
рейтинг книги