我正在尝试使用
C:Qt595.10.1msvc2015_64binwindeployqt.exe --dir e:deptest --qmldir e:ais e:build-ais-Desktop_Qt_5_10_1_MSVC2015_64bit2-Releasereleaseais.exe
这会将所有需要的文件复制到 e:\deptest,但是我没有复制我调用 windeployqt 的 exe 文件。如果我手动将其复制到目标文件夹,我可以很好地运行它。
Windeployqt 完成没有错误,但我不太确定这是否是预期行为,或者我在这里做错了什么。
我必须自己复制exe,还是我错过了什么?
从该工具的文档:
该工具可以在QTDIR/bin/windeployqt中找到。它将包含.exe文件的.exe文件或目录作为参数,并扫描可执行文件的依赖项。如果使用 --qmldir 参数传递目录,windeployqt 将使用 qmlimportscanner 工具扫描目录中的 QML 文件以查找 QML 导入依赖项。然后将标识的依赖项复制到可执行文件的目录中。Qt5Core.dll中的硬编码本地路径进一步替换为相对路径。
正常操作模式是将*.exe
复制到部署目录中,并将windeployqt
指向可执行文件。然后,它将所有依赖项复制到此部署文件夹。
据我所知,使用--dir
选项不是运行它的"通常"方式。我想如果您计划设置一个安装程序,其中Qt文件和您的应用程序是几个"组件"并且可以单独更新(这将节省带宽,因为您的应用程序将比Qt库更频繁地更新),这将非常有用。使用--dir
选项可以将所有必需的 Qt 依赖项放在一个可以单独打包的专用目录中。