Russian Qt Forum
Ноябрь 24, 2024, 21:05
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Конечный результат разработки ПО на Qt
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Конечный результат разработки ПО на Qt (Прочитано 8936 раз)
8Observer8
Гость
Конечный результат разработки ПО на Qt
«
:
Февраль 17, 2014, 07:05 »
Привет!
У меня нет полного понимания того, что является конечным результатом разработки ПО.
Выражу своё мнение. По ходу повествования написаны вопросы.
1.
Исполняемый файл со статической сборкой.
Создаётся один исполняемый файл, который весит, как минимум ~20 МБайт (для GUI-приложения). Запускается без каких либо зависимостей (к примеру, от libstdc++-6.dll, libgcc_s_dw2-1.dll, Qt5Core.dll, Qt5Gui.dll). Гарантировано - на любой машине. Для того чтобы создать статический exe-файл, нужно перекомпилировать библиотеку Qt в статическую сборку (по умолчанию библиотека динамическая). Далее из Qt Creator'а можно будет выбирать, как собрать разрабатываемое приложение: статически или динамически
Я знаком, только с ОС Windows, поэтому вопросы:
- Какое расширение у исполняемых файлов на Linux? В Linux все динамические библиотеки с расширением ".a"? Так?
- Какое расширение у исполняемых файлов на Mac OS? Какое расширение у динамических библиотек в Mac OS?
Как я понимаю, для Windows, Linux и Mac OS можно писать программы, которые достаточно перекомпилировать на соответствующей платформе, не меняя при этом код. Перекомпилировать этот код написанный для компьютера (для трёх ОС) под Android (и другие поддерживаемые мобильные платформы) мы не можем. Между мобильными платформами то же существует переносимость (с перекомпиляцией)? Какие мобильные платформы поддерживает Qt 5.2.0?
2.
Исполняемый файл с динамической сборкой.
Чтобы запустить приложение на другой машине, рядом с exe должны быть библиотеки, например, для GUI-приложения: libstdc++-6.dll, libgcc_s_dw2-1.dll, Qt5Core.dll, Qt5Gui.dll и т.д.
3.
Классы.
В этом случае продуктом разработчика будут: классы, документация (сгеренированная с помощью doxygen, в которой также есть диаграммы классов), тесты для методов-членов классов (тесты подтверждают требуемую функциональность классов)
4.
Динамическая библиотека.
Пока не знаю, как создавать динамическую библиотеку и обеспечить повторное использование её.
5.
Статическая библиотека.
Пока не знаю, как создавать статическую библиотеку и обеспечить повторное использование её.
6.
Мастер установки (инсталятор).
Скопирует все необходимые динамические (статические?) библиотеки в указанное пользователем место.
Что здесь неверно? Что пропустил? Как ещё может оформить разработчик результаты своего труда? Расскажите о своём опыте представления конечного результата своего труда пользователю (заказчику).
По мере познания и появления вопросов - буду здесь отписываться.
Заранее спасибо за ответы!
Записан
Serr500
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #1 :
Февраль 17, 2014, 08:39 »
Цитировать
Какое расширение у исполняемых файлов на Linux?
Вы не поверите - любое, в том числе его может не быть вообще.
В Linux "исполняемость" файла определяется атрибутом "x". При этом для одних пользователей он может быть исполняемым, а для других - нет.
Цитировать
В Linux все динамические библиотеки с расширением ".a"?
Нет. Почти всегда ".so" или ".so" с версией (.so[.N[.N[.N]]], N - число). ".a" - это то же, что и .lib в Windows. Кстати, MinGW в Windows использует именно ".a" вместо ".lib".
Цитировать
У меня нет полного понимания того, что является конечным результатом разработки ПО.
Ответ на этот вопрос однозначен: то, что написано в техзадании!
Записан
8Observer8
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #2 :
Февраль 17, 2014, 10:40 »
Цитата: Serr500 от Февраль 17, 2014, 08:39
Цитировать
У меня нет полного понимания того, что является конечным результатом разработки ПО.
Ответ на этот вопрос однозначен: то, что написано в техзадании!
Спасибо большое за ответ! Какие по ТЗ могут быть варианты? Я их все перечислил?
Я разобрался, как создавать и использовать dll в Qt. Написал пошаговую инструкцию, для таких же новичков, как и я:
http://www.prog.org.ru/topic_26558_0.html
«
Последнее редактирование: Февраль 17, 2014, 14:49 от 8Observer8
»
Записан
Serr500
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #3 :
Февраль 17, 2014, 16:11 »
Цитата: 8Observer8 от Февраль 17, 2014, 10:40
Какие по ТЗ могут быть варианты? Я их все перечислил?
Все варианты перечислить невозможно. Они зависят исключительно от
идиотизма
желаний заказчика. В целом, вроде бы, основные есть.
Записан
8Observer8
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #4 :
Февраль 17, 2014, 16:18 »
Цитата: Serr500 от Февраль 17, 2014, 16:11
В целом, вроде бы, основные есть.
Хорошо. Спасибо
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Конечный результат разработки ПО на Qt
«
Ответ #5 :
Февраль 17, 2014, 17:11 »
Цитата: 8Observer8 от Февраль 17, 2014, 07:05
- Какое расширение у исполняемых файлов на Mac OS? Какое расширение у динамических библиотек в Mac OS?
dylib для библиотек. У самих исполняемых - обычно никакого. Вообще еще до расширения OSX опознает файл по типу ('APPL' для приложения). Но как правило приложение идет в виде bundle (расширение .app) - одна иконка, юзверь давит на нее - запуск. На самом деле это фолдер, внутри сидит сам "exe'шник" что очень удобно для всех
Записан
8Observer8
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #6 :
Февраль 17, 2014, 18:25 »
Igors, спасибо большое
Записан
lesav
Частый гость
Offline
Сообщений: 235
qnx.org.ru
Re: Конечный результат разработки ПО на Qt
«
Ответ #7 :
Февраль 17, 2014, 19:46 »
Цитата: 8Observer8 от Февраль 17, 2014, 07:05
1.
Исполняемый файл со статической сборкой.
Создаётся один исполняемый файл, который весит, как минимум ~20 МБайт (для GUI-приложения). Запускается без каких либо зависимостей (к примеру, от libstdc++-6.dll, libgcc_s_dw2-1.dll, Qt5Core.dll, Qt5Gui.dll).
Статическую сборку не считаю необходимой. И не вижу трудностей в зависимостях.
В статической сборке вижу один огромный, на мой взгляд, минус - отсутствие системы плагинов.
В
Linux|
Windows
можно собирать пакеты
rpm|deb|
msi
|
exe
для установки на конечных компьютерах|устройствах с полным отсутствием зависимостей (в одном пакете все необходимые библиотеки)
Вот пример таких изысканий для Windows
Записан
http://qnx.org.ru/
8Observer8
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #8 :
Февраль 18, 2014, 15:19 »
Цитата: lesav от Февраль 17, 2014, 19:46
Статическую сборку не считаю необходимой. И не вижу трудностей в зависимостях.
Она необходима, если я хочу делиться с пользователями своими программками без установки. Как на этом сайте (сколько скачивал, всегда одним exe, может так выпадало):
http://qt-apps.org/
Определить какие же dll нужны - для меня это сложно. Нет уверенности, что ещё что-то не понадобится на машине пользователя.
Например, чтобы запустить диалоговое приложение, мне понадобились вот эти dll (определял методом тыка):
icudt51.dll
icuin51.dll
icuuc51.dll
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
Если пакет делать, то как на 100% быть уверенным, что учёл все dll?
Цитата: lesav от Февраль 17, 2014, 19:46
на мой взгляд, минус - отсутствие системы плагинов.
Поясните, пожалуйста, в друх словах, что такое плагины в Qt? Где они применяются?
«
Последнее редактирование: Февраль 18, 2014, 20:54 от 8Observer8
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Конечный результат разработки ПО на Qt
«
Ответ #9 :
Февраль 18, 2014, 15:37 »
Цитата: lesav от Февраль 17, 2014, 19:46
В статической сборке вижу один огромный, на мой взгляд, минус - отсутствие системы плагинов.
Вот. Давно хотел спросить, но неудобно было - нет времени сначала погуглить. Вопросы:
1) Есть плагины которые тоже хотят юзать Qt. Очень смутно представляю себе КАК если само приложение собрано статически с модулями Qt? Или такая возможность есть?
2) Приложение собрано динамически, но все dll лежат в определенном месте. Напр (для простоты) Qt dll в папке с exe-шником, а вот плагины - в другой. Как натравить плагины без "костылей" типа "setpath"?
Спасибо
Записан
Bepec
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #10 :
Февраль 18, 2014, 15:58 »
1) никак скорее всего. Динамика будет искать же их в папке
2) есть файлик qt.conf. Он позволяет изменять пути
https://qt-project.org/doc/qt-5.0/qtdoc/qt-conf.html
Записан
Vamireh
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #11 :
Март 04, 2014, 15:41 »
Извиняюсь за некропост.
Код:
Если пакет делать, то как на 100% быть уверенным, что учёл все dll?
Лично у меня есть в VirtualBox голая XP, если там запускается, то считаю, что учел все.
Записан
8Observer8
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #12 :
Март 04, 2014, 15:43 »
Цитата: Vamireh от Март 04, 2014, 15:41
Лично у меня есть в VirtualBox голая XP, если там запускается, то считаю, что учел все.
Спасибо большое! Тоже так буду делать
Записан
OKTA
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #13 :
Март 04, 2014, 16:26 »
А еще есть Dependency Walker - помогает с либами.
Записан
8Observer8
Гость
Re: Конечный результат разработки ПО на Qt
«
Ответ #14 :
Март 04, 2014, 16:33 »
Цитата: OKTA от Март 04, 2014, 16:26
А еще есть Dependency Walker - помогает с либами.
Большое спасибо! Я её давно пробовал. Помню она не всё определяла. Может я ошибаюсь. Надо ещё попробовать
«
Последнее редактирование: Март 04, 2014, 16:35 от 8Observer8
»
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...