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

Sp_Lab4

.docx
Скачиваний:
5
Добавлен:
01.04.2022
Размер:
592.97 Кб
Скачать

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

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

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

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

Лабораторная работа №4 по дисциплине «Системное программирование»:

«Основы работы с утилитой make»

Выполнил

Проверил:

Фатхулин Тимур Джалильевич

Москва 2021 г.

Оглавление

Цель работы 3

Задание на лабораторную работу 3

  1. Создание файла Makefile в Linux 3

  2. Создание кроссплатформенного приложения под Windows OC 5

Вывод 9

Контрольные вопросы 9

Цель работы

Изучить и практически освоить основы работы с утилитой make, разработать несколько кроссплатформенных программных продуктов.

Задание на лабораторную работу

    1. Создание файла 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

    1. Создание кроссплатформенного приложения под 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 и создавать кроссплатформенное приложение.

Контрольные вопросы

  1. Поясните назначение утилиты make. В каких случаях ее использование предпочтительно?

Утилита make предназначена для интерпретации команд, находящихся в файле со стандартным названием Makefile. Использование утилиты make

предпочтительнее тогда, когда программа состоит из нескольких десятков файлов. Так как каждый раз набирать названия их всех в одной строке было бы утомительно. Названия всех исходных файлов и все команды для сборки программы можно поместить в отдельный текстовый файл. А потом считывать их оттуда одной короткой командой.

  1. Какую структуру имеет Makefile? Что такое цель и зависимости?

Makefile является списком правил. Каждое правило начинается с указателя, называемого «Цель». После него стоит двоеточие, а далее через пробел указываются зависимости (файлы, названия которых оканчиваются на

.о). После зависимостей пишутся команды. Каждая команда должна находиться на отдельной строке, и отделяться от начала строки клавишей

«Tab». Структура правила Makefile может быть очень сложной. Там могут присутствовать переменные, конструкции ветвления, циклы.

  1. Как необходимо начинать строку с командами?

Каждая команда должна находиться на отдельной строке, и отделяться от начала строки клавишей «Tab».

  1. Как организуются правила Makefile с использованием переменных, конструкций ветвления и циклов?

Правила организуются:

  1. целями (то, что данное правило делает);

  2. реквизитами (то, что необходимо для выполнения правила и получения целей);

  3. командами (выполняющими данные преобразования). Общий синтаксис:

<цели>: <реквизиты>

<команда #1>

...

<команда #n>

  1. Поясните назначения правила clean, которое было использовано в работе.

Правило clean предназначено для «очистки» проекта, приведения его к такому состоянию, в каком он был до команды make.

  1. Поясните назначения правила install, которое было использовано в работе.

Правило install помещает исполняемый файл в каталог /usr/local/bin – стандартный каталог размещения пользовательских программ. Это значит, что еѐ можно будет вызывать из любого места простым набором еѐ имени.

  1. Поясните назначения правила uninstall, которое было использовано в работе.

Правило uninstall удаляет программу из системного каталога.

Соседние файлы в предмете Системное программирование