我正在尝试使用
部署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,但是我正在调用windeployqt的exe文件没有被复制。如果我手动将其复制到目标文件夹,我可以运行它。
Windeployqt没有错误地完成,但我不确定这是否是预期的行为,或者是否在这里做错了。
我是否必须自己复制exe,或者我错过了什么?
答案 0 :(得分:1)
该工具可在QTDIR / bin / windeployqt中找到。它将.exe文件或包含.exe文件的目录作为参数,并扫描可执行文件以查找依赖项。如果使用--qmldir参数传递目录,则windeployqt使用qmlimportscanner工具扫描目录中的QML文件以查找QML导入依赖项。 然后将已识别的依赖项复制到可执行文件的目录中。 Qt5Core.dll中的硬编码本地路径将被相对的替换。
正常的操作模式是将*.exe
复制到部署目录中,并将windeployqt
指向可执行文件。然后,它会将所有依赖项复制到此部署文件夹。
据我所知,使用--dir
选项不是运行它的“通常”方式。我想如果你打算设置例如它是非常有用的一个安装程序,其中Qt文件和您的应用程序是几个“组件”,可以单独更新(这将节省带宽,因为您的应用程序将更频繁地更新,然后Qt库)。使用--dir
选项,您可以在专用目录中拥有所有必需的Qt依赖项,这些目录可以单独打包。