Russian Qt Forum
Ноябрь 24, 2024, 00:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Как узнать какие файлы нужны для запуска Qt приложения на голом виндусе?  (Прочитано 16567 раз)
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #30 : Март 24, 2020, 11:13 »

я собирал таким скриптом:

Код:
set QTDIR=C:\Qt\Qt5.12.4\5.12.4\mingw73_64
PATH=%QTDIR%\bin;%QTDIR%\..\..\Tools\mingw730_64\bin\;%PATH%
mkdir Obj64
cd Obj64
qmake ../
mingw32-make -j 4 -f Makefile.Release

не знаю почему exe лезит к плагинам вне своей директории
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 584


Просмотр профиля
« Ответ #31 : Март 24, 2020, 11:24 »

Но мнения расходятся. Кто-то говорит плагнины не покажет, кто-то говорит покажет....

Есть библиотеки, которые подгружаются при старте приложения. Это обязательные библиотеки, без которых приложение не запустится.
Есть библиотеки, которые подгружаются и выгружаются в процессе работы приложения по мере необходимост. К ним относятся и pluggins. Это опциональные библиотеки, без которых приложение запуститься.

Любой инструмент покажет только библиотеки загруженные в текущий момент. Какого рода плагины нужны знает только разработчик ПО исходя их используемых функций - работа с картинками, с БД, со звуком и т.п.

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

В чем проблема поставить полный дистрибутив Qt со всеми плагинами? Много места занимают или что?
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #32 : Март 24, 2020, 11:31 »

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

Что такое "директории установки Qt" , если на целевой машине нет никакого Qt ?
Поиск плагинов идет там, где прописано в qt.conf

Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #33 : Март 24, 2020, 12:06 »

Цитировать
Поиск плагинов идет там, где прописано в qt.conf

И да и нет. ЕМНИП, пути установки захардкожены в Qt (в qmake?). Например при установке инсталлятором они пропатчиваются, также как и при использовании windeployqt (если я не туплю).
Записан

ArchLinux x86_64 / Win10 64 bit
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #34 : Март 24, 2020, 12:20 »

Цитировать
Поиск плагинов идет там, где прописано в qt.conf

И да и нет. ЕМНИП, пути установки захардкожены в Qt (в qmake?). Например при установке инсталлятором они пропатчиваются, также как и при использовании windeployqt (если я не туплю).

не совсем понял место и время, где и когда пути попадают в exe ?
я не вижу никаких строк в собранном мною, приведенном выше скриптом, exe файле
и насколько я знаю в венде нет rpath
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #35 : Март 24, 2020, 12:24 »

Какого рода плагины нужны знает только разработчик ПО исходя их используемых функций - работа с картинками, с БД, со звуком и т.п.
Не всегда так. Бывают большие проекты.... например я писал небольшую программу, но она использовала внешние модули, которые писала другая группа разработчиков. В итоге мне нужно было из 4-х увесистых проектов собирать своё. Сторонние проекты тяжёлые, но мне нужно от них было буквально пару классов... которые по полиморфизму тянули дерево виртуальных и/или абстрактных классов.... В итоге ко мне в ехе попала совсем не большая часть от их кода. Так вот, что там они использовали? БД или звук... ico или gif, я не знаю. Мне проще было собрать приложение, поместить в песошницу и докинуть нужные либы.

Другой пример.... разработка устройства.... 3-5 лет.... написал тестовую утилиту... как говориться "для себя". В заголовке pro файла комент "Project created by QtCreator 2017-12-12". больше 2-х лет назад. Разработка изделия проживает свой жизненный цикл.... я свою часть разработал, утилитой проверил... изделие получило сертификат. Теперь для обслуживающему персоналу нужно дать инструменты для обслуживания. Пару рющек в свою утилиту.... добавил about() и нужно выдать релиз. Какие функции я использовал более 2-х лет назад?

Спросил коллег - как нынче в Qt релизы выкатывать? Ответ: "windeployqt, но будет много мусора!" Собрал с помощью windeployqt библы.... windeployqt докинул мне много лишнего, например opengl32sw.dll. Что такое openGl и зачем он мне нужен? Его я ТОЧНО не использовал ни 2 года назад, ни 12 лет назад. Коллеги не паряться, выкатывают релизы с помощью windeployqt, у них релизы по 2Гб весят.

Я решил заморочиться и узнать - есть ли более кошерный способ, автоматический, без лишних либ? Оказалось нет.

Цитировать
В чем проблема поставить полный дистрибутив Qt со всеми плагинами? Много места занимают или что?
Что вы имеете в виду "поставить"? Инсталлировать в целевую винду полный дистрибутив Qt? Или сложить все либы и плагины лядом с ехе на целевой винде?



« Последнее редактирование: Март 24, 2020, 12:25 от juvf » Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 23.