Qt 库版本混用 + QML 模块缺失完整排查实战

Qt 5.13.x(MinGW)含 QML 程序发布后“双击无反应”:Qt 库版本混用 + QML 模块缺失完整排查实战(windeployqt)

1. 背景与问题现象

在 Windows 下使用 Qt 5.13.x + MinGW 开发的程序(含 QML/QtQuick),通过 windeployqt 打包后复制到发布目录,出现以下现象之一:

  • 双击 exe 无界面、无提示(闪退/黑屏)
  • 日志中出现 Qt 库版本冲突QML 模块缺失(例如 QtQuick/QtMultimedia not installed)

本文基于一次真实排查过程,整理成可复用的教学式排查流程,并给出最终可直接使用的部署命令。


2. 环境信息(本次实战)

  • Qt:5.13.2
  • 编译器:mingw73_64
  • 项目:含 QML(QtQuick),且 QML 中 import 了 QtMultimedia
  • 数据库:使用 MySQL 驱动插件 qsqlmysql.dll
  • 系统:Windows

3. 核心结论(先给结论,便于快速定位)

本次“打包后双击无反应”由 两类问题叠加导致:

  1. Qt DLL 版本混用(5.13.0 与 5.13.2)
    罪魁祸首位于:plugins\sqldrivers\qsqlmysql.dll(旧版 5.13.0)

  2. QML 模块未正确部署
    缺少 --qmldir 导致 windeployqt 未扫描到 QML import,运行时出现:
    module "QtQuick" is not installed / QtMultimedia not installed


4. 排查总流程(按时间线拆解)

步骤 现象/关键日志 定位结论 处理动作
1 windeployqt 后仍打不开 初步怀疑插件/QML 部署不全 确认 platforms 插件存在;开启日志
2 Fatal: Cannot mix incompatible Qt library (0x50d00 vs 0x50d02) Qt 库版本混用 清空目录重部署 + 排查所有 dll 版本
3 批量检查 dll 版本 发现 qs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值