0

我正在尝试使用

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,但是我调用 windeployqt 的 exe 文件没有被复制。如果我手动将它复制到目标文件夹,我可以运行它就好了。

Windeployqt 没有错误地完成,但是我不太确定这是否是预期的行为,或者这里是否做错了什么。

我必须自己复制exe,还是我错过了什么?

4

1 回答 1

1

工具的文档

该工具可以在 QTDIR/bin/windeployqt 中找到。它以 .exe 文件或包含 .exe 文件的目录作为参数,并扫描可执行文件的依赖项。如果使用 --qmldir 参数传递目录,windeployqt 使用 qmlimportscanner 工具扫描目录中的 QML 文件以查找 QML 导入依赖项。然后将识别的依赖项复制到可执行文件的目录中。Qt5Core.dll 中硬编码的本地路径被替换为相对路径。

正常的操作模式是将您的文件复制*.exe到部署目录并指向windeployqt可执行文件。然后它将所有依赖项复制到此部署文件夹。

使用该--dir选项 - 据我所知 - 不是运行它的“通常”方式。我想如果您计划设置一个安装程序,例如安装程序,其中 Qt 文件和您的应用程序是几个“组件”并且可以单独更新(这将节省带宽,因为您的应用程序会比 Qt 库更频繁地更新) . 使用该--dir选项,您可以将所有必需的 Qt 依赖项放在一个可以单独打包的专用目录中。

于 2018-05-15T19:52:21.787 回答