logo
ПЗ_А

2.5.Использование библиотек в ос Linux

Компиляция исходного текста программы осуществляется командой make [19], которая осуществляет сборку по набору правил, определенных в специальном файле Makefile, располагающемся рядом с исходным текстом.

При вызове команды make каждый измененный исходный C-файл должен быть перекомпилирован. Если был изменен заголовочный файл, перекомпилируется каждый исходный C-файл, который его включает. Каждая компиляция порождает объектный файл, соответствующий исходному файлу. Наконец, если какой-либо исходный файл был перекомпилирован, все объектные файлы, как новые, так и оставшиеся от предыдущих компиляций, должны быть скомпонованы вместе для создания нового исполняемого файла.

В общем случае make-файл состоит из набора правил следующего вида:

цель1 … цельN : зависимость1 … зависимостьM

[набор команд]

Цель обычно представляет собой имя файла, генерируемого программой make; примерами целей являются исполняемые или объектные файлы. Цель может также быть именем выполняемого действия.

Зависимость – это файл, используемый как вход для порождения цели. Часто цель зависит от нескольких файлов.

Набор команд представляет собой действия, которые выполняет make. Правило может иметь более, чем одну команду – каждую на своей собственной строке, при этом каждая команда должна начинаться с символа табуляции.

Вызов команды make без параметров приводит к выполнению первого правила из списка, при этом сначала строятся все необходимые для данного правила зависимости. Однако при вызове команды make можно явно указать имя правила, которое необходимо выполнить.

Стандарт IEEE 1003.2-1992 (POSIX.2) также предусматривает поддержку специальных функций, упрощающих работу с файлами, строками и т.д. Вызов функции осуществляется следующим образом:

$(имя_функции аргумент1 … аргументN)

Примеры make-файлов, использованных для сборки ПС ЭТ, могут быть найдены в приложении 1.