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

Архангельский М.В._2154_лаб

.8.pdf
Скачиваний:
9
Добавлен:
31.10.2023
Размер:
411.6 Кб
Скачать

Министерство цифрового развития, Связи и Массовых Коммуникаций Российской Федерации Ордена Трудового Красного Знамени федеральноегосударственноебюджетное образовательное

учреждениевысшегообразования «Московский Технический Университет Связи и Информатики»

(МТУСИ)

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

Лабораторная работа №8:

«Итоговое компилирование приложения для запуска на других компьютерах» попредмету:

«Кроссплатформенныетехнологиипрограммирования»

Выполнил: студент гр. БСТ2154 Архангельский М.В.

Принял: доцент Фатхулин Т.Д.

Москва 2023

Цельработы:

Изучить и практически освоить основы создания полноценного переносимого кроссплатформенного приложения с помощью Qt.

Задание:

Ознакомиться с основными понятиями создания переносимых кроссплатформенных программных продуктов.

В качестве примера программного продукта взять за основу клиентсерверное приложение из лабораторной работы №5.

Разработать код программы, реализующий серверную часть приложения.

Разработать код программы, реализующий клиентскую часть приложения.

Скомпилировать приложение в режиме «Выпуск»

Добавить необходимые библиотеки для самостоятельного запуска приложения

Запустить сначала сервер, затем клиентское приложение.

Переслать от клиента текстовые сообщения на сервер и получить в ответ подтверждающие сообщения.

Завершить работу сначала сервера, а затем клиентского приложения.

Согласно пунктам выполнения лабораторной работы, сделать необходимые снимки экрана. Изучить полученную информацию и оформить ее в соответствии с требованиями раздела «Содержание отчета».

Краткая теория:

В настоящей лабораторной работе осуществим перенос клиент-серверного приложения, созданного в лабораторной работе №5, на другие компьютеры. Допустим, мы написали приложение, и оно успешно компилируется и запускается в Qt Creator'e. Чтобы разработать готовое приложение, которое можно будет запускать отдельно, как любую другую программу, необходимо откомпилировать проект в режиме «Выпуск».

Для ОС Windows после компилирования в папку с названием "release", находящуюся в папке "build…", нужно прикладывать следующие файлы (из каталога, в котором установлен Qt, например, "C:\Qt\5.12.4\mingw73_32\ bin"):

"Qt5Core.dll";

"libgcc_s_dw2-1.dll";

"libwinpthread-1.dll";

"libstdc++-6.dll";

"Qt5Gui.dll";

"Qt5Network.dll" (для работы с сетевыми функциями);

"Qt5Widgets.dll".

Остальное зависит от того, какие еще опции указаны в файле с расширением *pro. Если приложение собрано в режиме «Выпуска», то брать надо библиотеки без "d" на конце имени файла: "Qt5Core.dll" и т.д., если собрано в режиме «Отладки», то "Qt5Cored.dll" и т.д. Приложение запускается путем двойного нажатия на файл с расширением *exe.

Выполнение:

В профайле проектов подключён модуль network, для работы с классами QTcpSocket и QTcpServer. Сначала создано приложения сервера, затем приложение клиента. Программный код файлов (кроме файлов проекта) совпадает с содержимым файлов лабораторной работы №5.

Структура проекта:

1. Серверная часть приложения:

"LR8_Arkhangelskiy_2154.pro" — профайл проекта серверной части приложения;

"main.cpp" — файл с функцией main серверной части приложения;

"myserver.h" — заголовочный файл окна приложения серверной

части;

"myserver.cpp" — файл исходных кодов окна приложения серверной

части.

2. Клиентская часть приложения:

"LR8.2_Arkhangelskiy_2154.pro" — профайл проекта клиентской части приложения;

"main.cpp" — файл с функцией main клиентской части приложения;

"myclient.h" — заголовочный файл окна приложения клиентской

части;

"myclient.cpp" — файл исходных кодов окна приложения клиентской

части.

Соберём проекты в режиме «Выпуск», как показано на рисунке 1. Скопируем файлы библиотек, необходимых для работы, из папки, в которой установлен Qt, в папки "release" проектов клиентского и серверного приложений, итоговый вид которых представлен на рисунке 2.

Рисунок 1 — Сборка проектов клиентской и серверной частей приложения в режиме «Выпуск»

Рисунок 2 — Содержимое папок "release" проектов "LR8_Arkhangelskiy_2154" и "LR8.2_Arkhangelskiy_2154"

Произведу запуск серверной части приложения, как показано на рисунке 3, а затем клиентской части приложения, как показано на рисунке 4.

Рисунок 3 — Окно серверной части приложения, запущенного через файл

"LR8_Arkhangelskiy_2154.exe"

Рисунок 4 — Окно клиентской части приложения, запущенного через файл

"LR8.2_Arkhangelskiy_2154.exe"

Произведу тестирование приложения путём обмена текстовыми сообщениями между клиентом и сервером, как показано на рисунке 5.

Рисунок 5 — Обмен текстовыми сообщениями между клиентской и серверной частью приложения

После осуществления успешной передачи текстовых сообщений, проведу тестирование клиента на вывод ошибок при подключении к серверу, закрыв серверную часть приложения, тем самым отключая его. На рисунке 6 продемонстрировано сообщение клиентской части приложения о том, что сервер был отключен.

Рисунок 6 — Сообщение от клиентской части приложения об ошибке

Вывод

В ходе выполнения лабораторной работы изучены основы создания полноценных переносимых кроссплатформенных приложений с помощью Qt. Для успешного запуска приложения на других компьютерах необходимо скомпилировать проект в режиме «Выпуск». После чего для корректной работы были скопированы из папки QT файлы библиотек в папки проектов «release». Проведено успешное тестирование обмена текстовыми сообщениями между клиентской и серверной частями приложения.

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

1.Какие файлы необходимы для автономной работы приложения?

Для автономной работы приложения необходимы файлы, полученные в

результате сборки проекта и дополнительные файлы, взятые в папке установленного QT:

1)Qt5Core.dll

2)Qt5Gui.dll

3)Qt5Network.dll

4)Qt5Widgets.dll

5)libgcc_s_dw2-1.dll

6)libwinpthread-1.dll

7)libstdc++-6.dll

2.Как определить, какие файлы библиотек следует использовать для данного режима компилирования программы?

Для определения файлов библиотек, которые следует использовать для

данного режима компиляции программы, можно выполнить следующие шаги: 1) Изучить документацию Qt и определить, какие модули нужны для

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

2)Проверить, какие библиотеки предоставляет каждый модуль. Это можно сделать, изучив документацию Qt или выполнив поиск в Интернете.

3)Выбрать нужные библиотеки, исходя из выбранного модуля. Например, если используется модуль QtCore, то потребуются файлы библиотеки QtCore.

4)Обратить внимание на требования к компиляции для каждой библиотеки. Некоторые библиотеки могут требовать дополнительных настроек или файлов конфигурации.

5)Учитывать требования операционной системы. Некоторые библиотеки могут быть доступны только для определенных операционных систем.

6)Если используете компилятор Qt, он автоматически определит, какие

файлы библиотеки нужно использовать. В Qt существуют два основных режима компиляции: «Отладка» (Debug) и «Выпуск» ( Release). В режиме «Отладка», используются библиотеки, оптимизированные для процесса отладки, и их имена файлов обычно содержат символ "d" перед расширением, например: Qt5Cored.dll,

Qt5Guid.dll, Qt5Widgetsd.dll, Qt5Networkd.dll. А в режиме «Выпуск», создаются файлы, оптимизированные для 16 использования конечными пользователями, и имена файлов библиотек не содержат символа "d", например: Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll, Qt5Network.dll. Однако если вы используете другой компилятор, вам может потребоваться вручную указать файлы библиотеки в настройках компилятора.