Sp_Lab4
.docxМинистерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский Технический Университет Связи и Информатики»
Кафедра математической кибернетики и информационных технологий
Лабораторная работа №4 по дисциплине «Системное программирование»:
«Основы работы с утилитой make»
Выполнил
Проверил:
Фатхулин Тимур Джалильевич
Москва 2021 г.
Оглавление
Цель работы 3
Задание на лабораторную работу 3
Создание файла Makefile в Linux 3
Создание кроссплатформенного приложения под Windows OC 5
Вывод 9
Контрольные вопросы 9
Цель работы
Изучить и практически освоить основы работы с утилитой make, разработать несколько кроссплатформенных программных продуктов.
Задание на лабораторную работу
Создание файла Makefile в Linux
В каталоге удалим все ненужные файлы, кроме calculate.c, calculate.h, main.c, и создадим файл Makefile, как показано на рисунках 1 и 2:
Рисунок 1 - Удаление файлов и создание файла Makefile
Рисунок 2 - Файл Makefile
Запустим make, как показано на рисунке 3. Видим, что появились объектные файлы и исполняемый. Запустим исполняемый файл и выполним несколько математических действий:
Рисунок 3 - Результат выполнения команды make и успешная работа калькулятора
Выполним несколько команд, прописанных в Makefile, как показано на рисунке 4:
Рисунок 4 - Результат выполнения команды make clean
Правило install помещает исполняемый файл в каталог /usr/local/bin – стандартный каталог размещения пользовательских программ. Это значит, что еѐ можно будет вызывать из любого места простым набором еѐ имени. Но помещать что-либо в этот каталог можно только, зайдя в систему под
«суперпользователем». Для этого надо дать команду sudo su и набрать пароль
«суперпользователя». В противном случае система укажет, что вам отказано в доступе. Выход из «суперпользователя» осуществляется командой exit. Результат показан на рисунке 5:
Рисунок 5 - Установка калькулятора
Теперь программу можно запустить откуда угодно, просто введя её имя.
Результат показан на рисунке 6:
Рисунок 6 - Успешная работа
Если мы перейдем в каталог /usr/local/bin, то там должен появиться файл с названием kalkul, как показано на рисунке 7:
Рисунок 7 - Файл калькулятора в каталоге bin
Теперь удалим калькулятор из этого каталога, чтобы не засорять систему, как показано на рисунке 8. Результат удаления подтверждается пустым каталогом, который показан на рисунке 9:
Рисунок 8 - Удаление калькулятора
Рисунок 9 - Пустой каталог bin
Создание кроссплатформенного приложения под Windows OC
После создания в корне диска “C” папки kalkul, создадим в ней файлы main.c, calculate.h и calculate.c, как показано на рисунках 10 – 12:
Рисунок 10 - Файл main.c
Рисунок 11 - Файл calculate.c
Рисунок 12 - Файл calculate.h
Далее, создадим файл makefile и пропишем текст, показанный на рисунке 13:
Рисунок 13 – Файл makefile
Далее, запустим этот файл в командной строке при помощи команды mingw32-make. Следует уточнить, что перед тем, как прописать данную команду, нужно установить программный пакет MinGW, предназначенный для разработки программного обеспечения.
Рисунок 14 – Успешная работа программы
После выполнения команды make, проверим работу остальных команд, как показано на рисунке 15:
Рисунок 15 - Успешная работа остальных команд
Также, после установки команда kalkul будет доступна со всех директорий, как показано на рисунке 16:
Рисунок 16 – Успешное выполнение команды
Вывод
Я научился работать в консоли, работать с командой make и создавать кроссплатформенное приложение.
Контрольные вопросы
Поясните назначение утилиты make. В каких случаях ее использование предпочтительно?
Утилита make предназначена для интерпретации команд, находящихся в файле со стандартным названием Makefile. Использование утилиты make
предпочтительнее тогда, когда программа состоит из нескольких десятков файлов. Так как каждый раз набирать названия их всех в одной строке было бы утомительно. Названия всех исходных файлов и все команды для сборки программы можно поместить в отдельный текстовый файл. А потом считывать их оттуда одной короткой командой.
Какую структуру имеет Makefile? Что такое цель и зависимости?
Makefile является списком правил. Каждое правило начинается с указателя, называемого «Цель». После него стоит двоеточие, а далее через пробел указываются зависимости (файлы, названия которых оканчиваются на
.о). После зависимостей пишутся команды. Каждая команда должна находиться на отдельной строке, и отделяться от начала строки клавишей
«Tab». Структура правила Makefile может быть очень сложной. Там могут присутствовать переменные, конструкции ветвления, циклы.
Как необходимо начинать строку с командами?
Каждая команда должна находиться на отдельной строке, и отделяться от начала строки клавишей «Tab».
Как организуются правила Makefile с использованием переменных, конструкций ветвления и циклов?
Правила организуются:
целями (то, что данное правило делает);
реквизитами (то, что необходимо для выполнения правила и получения целей);
командами (выполняющими данные преобразования). Общий синтаксис:
<цели>: <реквизиты>
<команда #1>
...
<команда #n>
Поясните назначения правила clean, которое было использовано в работе.
Правило clean предназначено для «очистки» проекта, приведения его к такому состоянию, в каком он был до команды make.
Поясните назначения правила install, которое было использовано в работе.
Правило install помещает исполняемый файл в каталог /usr/local/bin – стандартный каталог размещения пользовательских программ. Это значит, что еѐ можно будет вызывать из любого места простым набором еѐ имени.
Поясните назначения правила uninstall, которое было использовано в работе.
Правило uninstall удаляет программу из системного каталога.