Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №2

.docx
Скачиваний:
9
Добавлен:
25.03.2023
Размер:
231.7 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

(МТУСИ)

Кафедра: Математической кибернетики и информационных технологий

Дисциплина: «Современные операционные системы»

Лабораторная работа № 2

«Знакомство со стандартной утилитой GNU Make

для построения проектов в OC Unix»

Выполнил: Иванов И.И.

Группа: МБСТ0000

Проверил:

Симонов С.Е.

__________________________

Москва, ****

Содержание

Y

Москва, **** 1

Цель 3

Задание 3

Выполнение заданий 4

1. Ознакомиться с теоретическим материалом. 4

2. Используя любой текстовый редактор, создать простейшую программу на языке C (C++) с использованием как минимум двух исходных файлов (с программным кодом). 4

3. Для автоматизации сборки проекта утилитой make создать make файл (см. п. «Пример создания более сложного make-файла»). 5

4. Выполнить программу (скомпилировать, при необходимости отладить). 6

5. Показать, что при изменении одного исходного файла и последующем вызове make будут исполнены только необходимые команды компиляции (неизмененные файлы перекомпилированы не будут) и изменены атрибуты и/или размер объектных файлов (файлы с расширением .o). 7

6. Создать make-файл с высоким уровнем автоматизированной обработки исходных файлов программы согласно следующим условиям: 7

Вывод 9

Цель

Ознакомиться с техникой компиляции программ на языке программирования C (C++) в среде ОС семейства Unix, а также получить практические навыки использования утилиты GNU make для сборки проекта.

Задание

Изучить особенности работы с утилитой make при создании проекта на языке С (С++) в ОС Unix, а также получить практические навыки использования утилиты GNU make при создании и сборке проекта.

Выполнение заданий

  1. Ознакомиться с теоретическим материалом.

  2. Используя любой текстовый редактор, создать простейшую программу на языке C (C++) с использованием как минимум двух исходных файлов (с программным кодом).

Рисунок 1

Файл main.c

Рисунок 2

Файл hello.c

Рисунок 3

3. Для автоматизации сборки проекта утилитой make создать make файл (см. п. «Пример создания более сложного make-файла»).

Рисунок 4

4. Выполнить программу (скомпилировать, при необходимости отладить).

Рисунок 5

Файлы в каталоге после запуска make:

Рисунок 6

Сделаем запрос ls –l, чтобы посмотреть время изменения файлов:

Рисунок 7

5. Показать, что при изменении одного исходного файла и последующем вызове make будут исполнены только необходимые команды компиляции (неизмененные файлы перекомпилированы не будут) и изменены атрибуты и/или размер объектных файлов (файлы с расширением .o).

Рисунок 8

Как видно из результата выполнения команды, изменялся только файл hello.o, т.к. в файл hello.c вносились изменения переменной. Остальные файлы (которые не менялись) не перекомпилировались.

6. Создать make-файл с высоким уровнем автоматизированной обработки исходных файлов программы согласно следующим условиям:

 имя скомпилированной программы (выполняемый или бинарный файл), флаги компиляции и имена каталогов с исходными файлами и бинарными файлами (каталоги src, bin и т. п.) задаются с помощью переменных в makefile;

 зависимости исходных файлов на языке C (С++) и цели в make файле должны формироваться динамически;

 наличие цели clean, удаляющей временные файлы;

 каталог проекта должен быть структурирован следующим образом:

- src – каталог с исходными файлами;

- bin – каталог с бинарными файлами (скомпилированными);

- makefile.

Рисунок 9

Make-файл был значительно автоматизирован и стал более универсален. Здесь использованы функция wildcard, которая получает список файлов с заданным шаблоном в выбранном каталоге, и функция patsubst, которая заменяет заданную подстроку в заданной строке. Эти функции позволяют автоматически построить список объектных файлов программы.

Еще в данном Make-файле автоматизирован поиск исходных файлов по нескольким директорием с использованием переменных search _wildcard s и VPATH.

Вывод

В ходе данной лабораторной работе была изучена утилита Make, которая позволяет собирать программу из множества разрозненных файлов. Данная утилита имеет большое количество возможностей по автоматизации сборки проекта и позволяет создать такой Make-файл, который подойдет ко многим программам и при сборке каждой из них потребует незначительное количество изменений.