Qt 程序打包,运行提示找不到或无法加载平台插件 qwindows.dll

一、前言

当我们使用Qt的打包指令windeployqt打包完程序时出现提示:

This application failed to start because no Qt platform plugin could beinitialized. Reinstalling the application may fix this problem.

Available platform plugins are: windows.

翻译就是找不到或无法加载平台插件 qwindows.dll,我这里的直接原因是程序从32位转成64位,然后直接运行CMD命令行使用windeployqt打包。

二、解决方案

1、最直接解决办法就是不要直接在系统 CMD 里运行 windeployqt,而是使用 Qt自带命令行环境,例如:

XML 复制代码
打开Qt 5.x for Desktop (MinGW) Command Prompt
或者Qt 5.x for Desktop (MSVC) Command Prompt

然后进入你的 exe 目录:
cd D:\QTSpace\testApp1
执行:
windeployqt testApp1.exe

2、如果上面的方式还不行,也可以手动复制,例如这里的路径为:

D:\Qt\5.15.2\mingw81_64\plugins\platforms\qwindows.dll

复制到D:\QTSpace\testApp1\platforms

三、其他技巧

1、release的快速打包指令,windeployqt --release --compiler-runtime app.exe,这个带参数的比不带参数的更加稳定和准确。

2、快速查找缺失的.dll文件,在命令行运行:

set QT_DEBUG_PLUGINS=1

app.exe

Qt 会打印 插件加载失败原因。例如:Cannot load library qwindows.dll: 找不到 xxx.dll,就能看到具体缺哪个 DLL。

3、缩小程序体积的打包建议,windeployqt --release --no-angle --no-translations app.exe,特点是关闭 ANGLE(OpenGL兼容层QML、QOpenGLWidget、Qt Quick),不复制 Qt 翻译文件(QTranslator),然后再手动删除不用插件和用 UPX 压缩(upx --best MyApp.exe/*.dll),可以缩小打包完成后的程序目录大小。

相关推荐
特立独行的猫a2 分钟前
Fast DDS & Fast DDS Spy Windows x64 编译安装完全指南
windows·编译·安装·fastdds·fastddsspy
AI算法沐枫4 分钟前
基于YOLO26深度学习的【果园荔枝检测与计数】系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
开发语言·人工智能·python·深度学习·qt·学习·机器学习
专注VB编程开发20年9 分钟前
B4A (Basic4Android) Process_Globals(应用全局)和 Globals(类中公用变量)
java·开发语言
小a杰.10 分钟前
PTO ISA 指令架构 - PTO虚拟指令集架构解析
java·开发语言·架构
爱喝热水的呀哈喽15 分钟前
多轮对话 gpt‘
运维·windows·python
会编程的土豆18 分钟前
Go 里 interface 为什么能比较?到底在比什么?
开发语言·后端·golang
nnsix21 分钟前
MVC、MVP、MVVM 架构 笔记
java·开发语言·前端
Smile_25422041827 分钟前
vue3 + ts reactive方式清空表单对象
开发语言·前端·javascript
jjjava2.032 分钟前
Java 多线程核心基础与线程安全
java·开发语言
私人珍藏库37 分钟前
【PC】[吾爱大神原创工具] PDFImageViewer V1 永久免费的PDF图像查看和导出工具
windows·pdf·工具·软件·多功能