Qt windeployqt приводит к неиспользуемому развертыванию - PullRequest
0 голосов
/ 01 октября 2018

Я использую исполняемый файл windeployqt, чтобы подготовить дерево установки.Инструмент копирует все необходимые (и даже некоторые ненужные) библиотеки в указанную папку и выполняет исправления в Qt5Core.dll для жестко закодированных переменных пути.Ниже показано, как я запускаю инструмент.

C:\Qt\5.11.2\mingw53_32\bin>windeployqt.exe D:\Imaq D:\Imaq\Imaq.exe 32 bit, debug executable Adding Qt5Svg for qsvgicond.dll Direct dependencies: Qt5Core Qt5Gui Qt5Network Qt5Widgets All dependencies : Qt5Core Qt5Gui Qt5Network Qt5Widgets To be deployed : Qt5Core Qt5Gui Qt5Network Qt5Svg Qt5Widgets Updating Qt5Cored.dll. Updating Qt5Guid.dll. Updating Qt5Networkd.dll. Updating Qt5Svgd.dll. Updating Qt5Widgetsd.dll. Updating libGLESV2d.dll. Updating libEGLd.dll. Updating D3Dcompiler_47.dll. Updating opengl32sw.dll. Updating libgcc_s_dw2-1.dll. Updating libstdc++-6.dll. Patching Qt5Cored.dll... Creating directory D:/Imaq/bearer. Updating qgenericbearerd.dll. Creating directory D:/Imaq/iconengines. Updating qsvgicond.dll. Creating directory D:/Imaq/imageformats. Updating qgifd.dll. Updating qicnsd.dll. Updating qicod.dll. Updating qjpegd.dll. Updating qsvgd.dll. Updating qtgad.dll. Updating qtiffd.dll. Updating qwbmpd.dll. Updating qwebpd.dll. Creating directory D:/Imaq/platforms. Updating qwindowsd.dll. Creating directory D:/Imaq/styles. Updating qwindowsvistastyled.dll. Creating D:\Imaq\translations... Creating qt_ar.qm... Creating qt_bg.qm... . . Исходя из вышеприведенного вывода, похоже, что инструмент работает без ошибок.Но после развертывания, если я пытаюсь выполнить двоичный файл, отображаются следующие ошибки:

enter image description here

Из этой ошибки похоже, что неправильные dllскопировано.Но на моей машине у меня есть только один компилятор (mingw53_32), и других возможных версий этих dll нет.

Примечание: я установил Qt с помощью онлайн-установщика и выбрал только Qt creator,и Qt Mingw из списка.Все остальные компоненты, перечисленные в установщике, были отключены.Мне интересно, если эта проблема из-за каких-либо отсутствующих компонентов.

Кроме того, я пробовал переключатели, такие как --debug, --compiler-runtime, хотя кажется, что эти переключатели не имеют ничего общего сЭта проблема.Любые указатели будут высоко оценены.

1 Ответ

0 голосов
/ 01 октября 2018

Как я понял из вашего вывода windeployqt, вы пытаетесь развернуть отладочную сборку вашего приложения (поскольку windeployqt.exe копирует библиотеки `Qt5Cored.dll, Qt5Guid.dll, Qt5Networkd.dll 'и т. Д.).Вы должны попытаться развернуть релизную сборку приложения.

В Qt creator вы найдете опцию в левом нижнем углу, чуть выше кнопки запуска.Конфигурации сборки для сборки Debug и Release можно открыть, нажав «Проекты» на левой панели инструментов, когда ваш проект открыт.

Как указано в Qt5.11.2 windeployqt не создает конечную зависимую dll

Qt 5.11.2 предоставляет опцию / флаг вместе с windeployqt для создания зависимостей, связанных с исполняемым файлом отладки / выпуска.

Для создания отладочных зависимых от версии библиотек: windeployqt исполняемый файл --debug

Для создания зависимых от версии dll: windeployqt исполняемый файл --release

...