Windeployqt 部署除 exe 文件以外的所有内容

Windeployqt deploys everything but exe file

我正在尝试使用

部署 QML 应用程序
C:\Qt59.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,还是我遗漏了什么?

来自tool's documentation

The tool can be found in QTDIR/bin/windeployqt. It takes an .exe file or a directory that contains an .exe file as an argument, and scans the executable for dependencies. If a directory is passed with the --qmldir argument, windeployqt uses the qmlimportscanner tool to scan QML files inside the directory for QML import dependencies. Identified dependencies are then copied to the executable's directory. The hardcoded local paths in Qt5Core.dll are furthermore replaced with relative ones.

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

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