Название: [Решено] Запуск приложений на стороне пользователя Отправлено: 8Observer8 от Сентябрь 01, 2014, 14:49 Привет!
В релизную папку добавил библиотеки: - icudt51.dll - icuin51.dll - icuuc51.dll - libstdc++-6.dll - libwinpthread-1.dll - Qt5Core.dll - Qt5Gui.dll - Qt5SerialPort.dll - Qt5Widgets.dll При запуске exe выводится сообщение: (http://i.pixs.ru/storage/1/8/9/310png_4766756_13662189.png) Я нагуглил: ссылка (http://www.qtcentre.org/threads/56516-Cound-not-find-or-load-qt-platform-plugin-windows-No-working-solution-yet-!?p=253520#post253520) Пишут, что должна быть такая структура: Цитировать /YourAppInstallFolder - YourApp.exe - any needed Qt DLLs - /plugins -/platforms - qwindows.dll Я так и сделал: (http://i.pixs.ru/storage/2/6/8/314png_9186715_13662268.png) Но всё равно выводится то сообщение выше. Заранее спасибо! Название: Re: Запуск приложений на стороне пользователя Отправлено: Bepec от Сентябрь 01, 2014, 14:53 Гуглишь плохо. Структура неправильна. /platforms должна быть рядом с exe.
Название: Re: Запуск приложений на стороне пользователя Отправлено: 8Observer8 от Сентябрь 01, 2014, 15:06 Почему приложение требует "icuin51.dll", а в Qt 5.3.1 есть только "icuin52.dll"? Что делать если я удалил старый Qt?
Название: Re: Запуск приложений на стороне пользователя Отправлено: Alex Custov от Сентябрь 01, 2014, 15:12 Почему приложение требует "icuin51.dll", а в Qt 5.3.1 есть только "icuin52.dll"? Очевидно, что приложение собрано с более старой версий Qt. Название: Re: Запуск приложений на стороне пользователя Отправлено: 8Observer8 от Сентябрь 01, 2014, 15:45 У меня старый Qt был тоже. Хотя на этапе создания приложения есть выбор... В общем, возможно я в Kit неверно настроил. Решил удалить оба и заново поставить новый.
Название: Re: Запуск приложений на стороне пользователя Отправлено: Bepec от Сентябрь 01, 2014, 15:54 А обои то в зачем удалять? Компьютер без обоев - это скучно.
Название: Re: Запуск приложений на стороне пользователя Отправлено: 8Observer8 от Сентябрь 01, 2014, 16:40 А обои то в зачем удалять? Компьютер без обоев - это скучно. "Оба" SDK :)Гуглишь плохо. Структура неправильна. /platforms должна быть рядом с exe. Да, на другой машине, без Qt SDK запускается :)Для простого GUI приложения (где используется последовательный порт) надо отсюда "c:\Qt\Qt5.3.1\5.3\mingw482_32\bin\" скопировать такие dll к exe: - platforms/qwindows.dll (отсюда c:\Qt\Qt5.3.1\5.3\mingw482_32\plugins\platforms\) - icudt52.dll - icuin52.dll - icuuc52.dll - libgcc_s_dw2-1.dll - libstdc++-6.dll - libwinpthread-1.dll - Qt5Core.dll - Qt5Gui.dll - Qt5SerialPort.dll - Qt5Widgets.dll Название: Re: Запуск приложений на стороне пользователя Отправлено: Fregloin от Сентябрь 01, 2014, 17:34 Вот пример скрипта для InnoSetup который я урезал, но должен работать и у вас. Инсталяхи отлично компилируются и отлично ставятся. ПО работает на многих машинах, на которых не стояло Qt - полет нормальный.
Код: ; Script generated by the Inno Setup Script Wizard. Название: Re: Запуск приложений на стороне пользователя Отправлено: 8Observer8 от Сентябрь 01, 2014, 17:59 Fregloin, спасибо! Может осилю когда-нибудь :) а сейчас что-то со скриптом не так:
(http://i7.pixs.ru/storage/7/1/9/321png_2881751_13664719.png) Название: Re: Запуск приложений на стороне пользователя Отправлено: 8Observer8 от Сентябрь 01, 2014, 18:01 Ну, вроде понял, что это примерный скрипт и там надо конкретные данные указывать :)
Название: Re: Запуск приложений на стороне пользователя Отправлено: vizir.vs от Сентябрь 02, 2014, 08:18 Если ты используешь CMake для сборки приложений, то можно заюзать CPack для сборки установочника. Он ставится вместе с cmake и пишется все в CMakeLists.txt. В итоге у тебя получается установочник и для винды и для линя.
Название: Re: Запуск приложений на стороне пользователя Отправлено: Fregloin от Сентябрь 02, 2014, 10:54 ну в этом скрипте были указаны мои пути, вам следует указать свои, и все должно заработать.
в линях для своего ПО я использую созданные мною деб пакеты. впринципе там qt можно ставить несколькими способами, но я так понял тема актуальна именно для винды. Название: Re: Запуск приложений на стороне пользователя Отправлено: navrocky от Сентябрь 02, 2014, 11:27 Для собирания всех зависимостей используй windeployqt из комплекта Qt SDK
Название: Re: Запуск приложений на стороне пользователя Отправлено: 8Observer8 от Сентябрь 02, 2014, 11:48 Спасибо! Скорее всего, windeployqt - наилучшее решение!
Может инсталяторы имеет смысл использовать для крупных проектов? А для мелочи всякой достаточно же передать пользователю exe с необходимыми dll. Он уже сам решит: где расположить папку, создать ли ярлык на рабочем столе или закрепить в меню "Start". Кто как думает? Название: Re: Запуск приложений на стороне пользователя Отправлено: VPS от Сентябрь 02, 2014, 12:08 Можно ещё попробовать использовать "Enigma Virtual Box" для того, чтобы все файлы в один собрать.
|