LINUX.ORG.RU

Qt5 + html5

 , ,


0

2

Создал в Qt Creator новый проект «Приложение HTML5», скомпилировал, получил на выходе exe (ага, под офтопик). Из Qt Creator оно запускается, а вот просто из под офтопика требует Qt5cored.dll и другие dll-ки. Какой минимальный набор библиотек из Qt5 необходим для запуска подобного приложения на другом компьютере, где Qt не установлен?

★★

Минимальный набор Qt + минимальный набор вашего «типа» провекта (html5, очевидно нужен webkit) + все ваши стороние зависимости.

Qt5cored
d

У вас проект debug, я бы такой не стал распространять между пользователями, в Qt5 debug неимоверно жирный.

Для распространения бинарников пересоберите проект в release.

bhfq ★★★★★
()
Последнее исправление: bhfq (всего исправлений: 1)

Достаточно поглядеть в .pro и посмотреть, какие модули включены. По дефолту используются core и gui (это если *.pro пустой).

Если там прописано

QT += xml network
То добавятся также модули QXml и QNetwork.

P.S. Qt5cored.dll — отладочная версия, на оффтопе она может работать гораздо медленнее и весить гораздо больше, чем релизная. Так что распространять программу стоит всё-таки в релизной сборке.

quiet_readonly ★★★★
()
Ответ на: комментарий от bhfq

Ага, собрал как релиз, действительно размер и самого приложения уменьшился, и требовать стало Qt5core.dll.

А нельзя ли как то сделать, чтобы все зависимости сразу добавлялись в папку с релизом?

Pirr ★★
() автор топика

Qt5 с mingw требует какое то неприличное количество dll-лок. Я для того чтобы выяснить какие именно нужны использую anvir task manager.

Кстати, только у меня наблюдается такой баг: dll плагинов должны лежать непременно в C:\Qt\Qt5.0.2\5.0.2\mingw47_32\plugins ?

akinator ★★
()
Ответ на: комментарий от akinator

Методом перебора понял, что простой «Hello World» тянет в зависимостях весь Qt!!!

Можно как то автоматом отключить все неиспользуемые зависимости?

Pirr ★★
() автор топика
Ответ на: комментарий от deterok

В файле проекта:

QT += widgets webkitwidgets

Как я понимаю в зависимостях, весь Qt, плюс widgets и webkitwidgets. Но что из Qt можно убрать а что оставить именно для проекта на html5, мне не ясно.

Pirr ★★
() автор топика
Ответ на: комментарий от wota

dumpbin тогда уж, а на его выхлоп можно скрипт на павершеле натравить.

Gorthauer ★★★★★
()
Ответ на: комментарий от KblCb

По одной dll-ке, начал копировать в папку с проектом, после 15-й... устал и плюнул на это дело. Приложение реально требовало практически всё.

Pirr ★★
() автор топика
Ответ на: комментарий от Pirr

Ничего не поделаешь, это WebKit. Я сейчас глянул, в Qt5 у него зависимостей побольше чем я написал (ну и всякая мелочь от которой зависит core и gui (ничего не поделаешь, это windows)). Но в общем всё так и линкер не ошибся.

KblCb ★★★★★
()
Ответ на: комментарий от KblCb

Жаль, очень жаль... а так хотелось попробовать создать настоящее RIA приложение. С таким ворохом зависимостей Qt5+html5 мне не подойдет.

Pirr ★★
() автор топика
Ответ на: комментарий от Pirr

Сомнительный аргумент. В виндах привыкли выкачивать сотни мегабайт дистрибутивов. В линуксах зависимости шарятся. А почему html5, а не qml?

KblCb ★★★★★
()
Ответ на: комментарий от KblCb

Сотни мегабайт для серьезных приложений это не проблема, но для «воздушных» RIA приложений - это перебор.

А QML - меньше будет тянуть в зависимостях?

Pirr ★★
() автор топика
Ответ на: комментарий от Pirr

Пересобери Qt со статическими библиотеками. Будет один ехе.

bvn13 ★★★★★
()
Ответ на: комментарий от Pirr

У меня QML-приложение с видео, сетью и эффектами (QtGraphicalEffects) весит 40 Мб, из которых 21 Мб весит ICU (, который рекомендуют пересобирать с выключенной поддержкой иероглифов и прочего, что снижает вес до 1-2 Мб).

kaffeine
()
Ответ на: комментарий от akinator

dll плагинов должны лежать непременно в C:\Qt\Qt5.0.2\5.0.2\mingw47_32\plugins ?

Каталогом с плагинами по-умолчанию является executable dir. Туда и надо складывать, воссоздавая иерархию как в plugins.

Amp ★★★
()
Ответ на: комментарий от Amp

Каталогом с плагинами по-умолчанию является executable dir. Туда и надо складывать, воссоздавая иерархию как в plugins.

В Qt4 так и делал. А Qt5 у меня, почему то, это перестало работать. Может быть руки кривые.

На компе на котором Qt не установлен приходится создавать каталог C:\Qt\Qt5.0.2\5.0.2\mingw47_32\plugins и класть туда нужные плагины. Только так мои программы запускаются.

akinator ★★
()
Последнее исправление: akinator (всего исправлений: 1)
Ответ на: комментарий от kaffeine

Скажите а есть такой инсталятор с Qt, чтобы он в систему установил все библиотеки необходимые для работы Qt программ?

Pirr ★★
() автор топика
Ответ на: комментарий от solovey

Спасибо. Извините за глупые вопросы, но в Qt я новичок.

Pirr ★★
() автор топика
Ответ на: комментарий от solovey

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

SDK, libraries
    Win{32, 64}{mingw{4.7, 4.8}, msvc}{ANGLE, OpenGL}
    Linux{32,64}
    Mac.
Кстати, вместо зоопарка линуксов наблюдается зоопарк винды. Лол.

kaffeine
()
Ответ на: комментарий от kaffeine

Честно говоря, не вижу смысла в отдельном установщике библиотек... Я под оффтопик стянул полную версию. Выдрать из нее библиотеки - не проблема. А лишних 250 Мб трафика - не так много по нынешним меркам.

solovey ★★
()
Ответ на: комментарий от Pirr

Кстати, вот тебе ссылочка на то, как деплоить Qt-шные приложения под виндой... Там про Qt 4.8, но идея, я думаю, не менялась..

Вдруг пригодится.

solovey ★★
()
Ответ на: комментарий от quiet_readonly

Достаточно поглядеть в .pro и посмотреть, какие модули включены

недостаточно, в Qt5 много новых зависимостей типа EGL

alex_custov ★★★★★
()

Я что-то не догоняю, а зачем тебе Qt?

alex_custov ★★★★★
()

Здравствуйте, это канал о линуксе? Как запихнуть в _папку_ с проектом все нужные dll?

cdshines ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.