|
|||||||
Qt 5.1 и корректный deployment в Windows
Время создания: 04.03.2018 12:38
Автор: itsplus
Текстовые метки: qt, qt5, сборка, библиотеки, зависимости, windows, деплойdeployment
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - Инсталляция Qt и сборка проектов
Запись: xintrea/mytetra_syncro/master/base/1520159892frhm662072/text.html на raw.github.com
|
|||||||
|
|||||||
Qt 5.1 и корректный deployment в Windows Добрый день!
Один мой заказчик попросил разработать kiosk-mode приложение на Qt. И для начала, сделать версию для POS-терминала с ОС Windows XP. Ok, за неделю я что-то сверстал по приложенным макетам и попробовал отдать версию заказчику. Приложив Qt5Core.dll, Qt5Gui.dll, ну и прочие .dll используемых модулей Qt. «Failed to load platform plugin „windows“» сказала японскаяфинская бензопила.
Она не очень помогла, пошел читать форумы на qt-project.org. Вот предлагаемые решения:
qApp->addLibraryPath("C:/customPath/plugins");
5) использовать аргумент командной строки: "-platformpluginpath \путь_к_папке_с_qwindows.dll\"
[Files] ... Source: "..\build\deploy\platforms\qwindows.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\TryumPosWin.exe"; Parameters:"-platformpluginpath \"{app}\platforms\"" ; WorkingDir: "{app}";
if (QSqlDatabase::isDriverAvailable("QSQLITE")){ qDebug("QSqlite driver found."); } else { qFatal("QSqlite driver NOT found!"); }
int main(int argc, char *argv[]) { Q_INIT_RESOURCE(resources); QStringList paths = QCoreApplication::libraryPaths(); paths.append("."); paths.append("imageformats"); paths.append("platforms"); paths.append("sqldrivers"); QCoreApplication::setLibraryPaths(paths); QApplication a(argc, argv); a.setQuitOnLastWindowClosed(false); QDbc::init(); MainWindow w; w.showFullScreen(); a.exec(); QDbc::finalize(); }
paths.append(QCoreApplication::applicationDirPath() + "/plugins");
[Files] Source: "..\build\deploy\icudt51.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\icuin51.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\icuuc51.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\libEGL.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\libGLESv2.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\msvcp100.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\msvcr100.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\Qt5Gui.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\Qt5Network.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\Qt5Sql.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\Qt5Widgets.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\deploy\imageformats\qico.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion Source: "..\build\deploy\platforms\qwindows.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion Source: "..\build\deploy\sqldrivers\qsqlite.dll"; DestDir: "{app}\sqldrivers"; Flags: ignoreversion Статья не претендует на всеобъемлющее исследование, но корректного работающего решения я не нашел и поэтому решил опубликовать свое.
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|