1.前言
网络上关于qt的windeployqt.exe打包qt程序的文章已经很多,基本上大同小异。也是因为windeployqt工具提供的选项并不多,具体可以用以下命令查看:
windeployqt -h
2.遇到的问题
在完成qml项目编码后,需要将项目打包发送,这时就需要用到windeployqt工具。以前QWidgets项目使用命令: windeployqt XXXX.exe 基本就能搞定,再添加一些项目配置就能跑起来,但这一次使用 windeployqt --qmldir "项目路径/qml" "XXXX.exe" 命令生成了一大堆,点击exe文件时却动不起来。
3.解决办法
排查发现项目中引用了另一个qml动态库项目b,但qt构建时并不会自动将b项目加载进来。
知道原因就好办了,将动态库b项目的qml添加到 --qmldir 所引用的路径下,打包即可。
有文章说 --qmldir 可以用;分号隔开表示多个文件夹,不知道是不是qt版本问题,试了报错,windeployqt 不会主动以分号分割字符串。
(还有一个问题,如果拿不到动态库项目b的qml原文件,那岂不是打不了包了???)