Windeployqt развертывает все, кроме исполняемого файла - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь развернуть приложение QML, используя

C:\Qt59\5.10.1\msvc2015_64\bin\windeployqt.exe --dir e:\deptest --qmldir e:\ais e:\build-ais-Desktop_Qt_5_10_1_MSVC2015_64bit2-Release\release\ais.exe

Это копирует все необходимые файлы в e: \ deptest, однако exe-файл, для которого я вызываю windeployqt, не копируется. Если я скопирую его в целевую папку вручную, я смогу его запустить.

Windeployqt завершает работу без ошибок, однако я не совсем уверен, является ли это ожидаемым поведением или я что-то здесь не так делаю.

Нужно ли самому копировать exe, или я что-то упустил?

1 Ответ

0 голосов
/ 15 мая 2018

Из документации инструмента :

Инструмент можно найти в QTDIR / bin / windeployqt.Он принимает файл .exe или каталог, содержащий файл .exe в качестве аргумента, и проверяет исполняемый файл на наличие зависимостей.Если каталог передается с аргументом --qmldir, windeployqt использует инструмент qmlimportscanner для сканирования файлов QML внутри каталога на наличие зависимостей импорта QML. Идентифицированные зависимости затем копируются в каталог исполняемого файла. Кроме того, жестко закодированные локальные пути в Qt5Core.dll заменяются относительными.

Обычный режим работы - копирование*.exe в каталог развертывания и укажите windeployqt на исполняемый файл.Затем он копирует все зависимости в эту папку развертывания.

Использование параметра --dir, насколько я знаю, не является "обычным" способом его запуска.Я думаю, что это довольно полезно, если вы планируете установить, например, установщик, в котором файлы Qt и ваше приложение являются несколькими «компонентами» и могут обновляться индивидуально (что позволит сэкономить пропускную способность, поскольку ваше приложение будет обновляться чаще, чем библиотеки Qt),Использование опции --dir позволяет вам иметь все необходимые зависимости Qt в выделенном каталоге, который может быть упакован индивидуально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...