首页/新闻资讯/正文详情

解决工程中同时存在两个版本 Qt 导致 This application failed to start because no Qt platform plugin could be initiali

发布时间:2026/11/8 2:48:58 来源:云帆数科 栏目:资讯中心
解决工程中同时存在两个版本 Qt 导致 This application failed to start because no Qt platform plugin could be initiali
文章目录1. 情况描述2. 问题定位3. 解决思路3.1. 分开放置 qwindows.dll3.2. 创建 RunXYZ.bat3.3. 修改 main.cpp4. 总结另一篇关于如何打包工程为 EXE 的文章地址如下 VS2026 打包 C 程序生成 EXE借助 Installer Project 扩展工具。在使用 Visual Studio 开发 Qt 界面程序时如果程序还需要调用其他软件 API部署到其他电脑时就会遇到 Qt 平台插件无法初始化的问题。即报错This application failed to start because no Qt platform plugin could be initialized.主要技术描述为一个工程中同时需要存在两个版本 Qt如何解决共存问题1. 情况描述我们假定开发的工程名字为XYZ被调用软件名字为ABC。同时参照如下一个普通的 Qt Windows 应用部署目录通常包含XYZ\ ├── XYZ.exe ├── Qt6Core.dll ├── Qt6Gui.dll ├── Qt6Widgets.dll └── platforms\ └── qwindows.dll其中Qt6Core.dll、Qt6Gui.dll 等是 Qt 运行库platforms\qwindows.dll 是 Qt 平台插件。而我们现在遇到的情况详细描述为开发了XYZ工程此工程是基于 Qt 开发的界面。工程XYZ里调用了基于 Qt 的ABC软件 API。正常部署XYZ时会默认将对应的 Qt 平台插件platforms\qwindows.dll放置在和XYZ.exe同一文件夹。想要正常调用ABC软件就也必须将软件ABC里的 Qt 平台插件platforms\qwindows.dll放置在和XYZ.exe同一文件夹。那么部署目录就如下注意这是无法运行的XYZ\ ├── XYZ.exe ├── Qt6Core.dll ├── Qt6Gui.dll ├── Qt6Widgets.dll └── platforms\ └── qwindows.dll ← 工程 XYZ 的 Qt 插件 └── platforms\ └── qwindows.dll ← 软件 ABC 的 Qt 插件这种情况下两份qwindows.dll文件是不能共存的会产生相互覆盖的问题。同时解释下qwindows.dll是 Qt 在 Windows 平台上的平台插件。它负责让 Qt 与 Windows 窗口系统交互例如创建窗口以及处理鼠标、键盘等系统事件。所以缺少或者调用不正确都会出现This application failed to start because no Qt platform plugin could be initialized.的提示。2. 问题定位至于软件ABC为什么要如此设置这是因为官方的设定要求否则无法运行也就是说暂时无法修改的。那么我们只能选择移动qwindows.dll ← 工程 XYZ 的 Qt 插件。所以需要处理的问题为将所需要的两个不同的qwindows.dll文件都找到将二者部署起来并让程序在合适时间调用合适文件3. 解决思路3.1. 分开放置 qwindows.dll将两份qwindows.dll放在不同文件夹这样才不会相互覆盖且程序才能根据不同路径索引它们。又由于qwindows.dll ← 软件 ABC 的 Qt 插件受限于官方要求无法移动因此暂时只能选择移动qwindows.dll ← 工程 XYZ 的 Qt 插件到一个新建文件夹qt6plugins下。文件结构如下XYZ\ ├── XYZ.exe ├── Qt6Core.dll ├── Qt6Gui.dll ├── Qt6Widgets.dll └── platforms\ └── qwindows.dll ← 软件 ABC 的 Qt 插件 ├── qt6plugins\ │ ├── platforms\ │ │ └── qwindows.dll ← 工程 XYZ 的 Qt 插件3.2. 创建 RunXYZ.bat然后在XYZ.exe同目录下创建RunXYZ.bat并写入如下内容echo off cd /d %~dp0 set QT_QPA_PLATFORM_PLUGIN_PATH%~dp0qt6plugins\platforms start %~dp0XYZ.exe解释下各行命令作用cd /d %~dp0: %~dp0 表示 BAT 文件所在的目录。这一行将当前工作目录切换到该目录便于程序按现有相对路径查找 data 文件。set QT_QPA_PLATFORM_PLUGIN_PATH%~dp0qt6plugins\platforms: 为即将启动的程序设置 Qt 平台插件路径指向 Qt6 的qt6plugins\platforms这是平台插件所在目录不是插件根目录。start %~dp0XYZ.exe: 从 BAT 所在目录启动程序。程序会继承 BAT 设置的环境变量因此 Qt6 在初始化界面时可以尝试从指定位置加载平台插件。这个变量只在该脚本及其启动的进程环境中设置不需要修改 Windows 系统级环境变量。3.3. 修改 main.cppBAT 将QT_QPA_PLATFORM_PLUGIN_PATH传给了整个XYZ进程。如果直接保留该变量后续ABCAPI 的 Qt 组件也可能受到影响。因此你前面的测试方案是在 Qt6 的 QApplication 创建后清除它修改main.cpp成如下内容#includeQApplication#includeQCoreApplication#includeQDirintmain(intargc,char*argv[]){// Qt 6 在构造 QApplication 时初始化图形平台。QApplicationapp(argc,argv);// 清除由 BAT 设置的平台插件路径// 避免后续 ABC API 继续受到这个路径设置的影响。qunsetenv(QT_QPA_PLATFORM_PLUGIN_PATH);// 让 Qt6 在后续运行中也能查找其他插件// 例如 qt6plugins/imageformats 下的图片格式插件。QCoreApplication::addLibraryPath(QDir(QCoreApplication::applicationDirPath()).filePath(qt6plugins));// 创建并显示项目原有的主窗口。// ...returnapp.exec();}修改后重新编译 Release x64并将新生成的XYZ.exe放入部署目录。但这里要注意这是一种针对当前程序的测试方案不是所有双 Qt 程序都通用的保证。并且这段代码会清除同名环境变量如果程序原本需要保留用户配置还需要另外设计恢复方式。4. 总结本方案中通过 BAT 指定 Qt6 平台插件目录后XYZ界面能够在目标电脑上启动。ABCAPI 是否能正确初始化还需要继续验证其依赖、许可证、硬件连接和实际功能。可通过 Visual Studio 的模块窗口检查两份qwindows.dll的实际加载路径。另外This application failed to start because no Qt platform plugin could be initialized不只会由缺少插件或加载了错误版本引起插件自身依赖缺失等情况也可能导致它。

相关推荐

直播平台带宽成本降低 40% 实录:FFmpeg 转码链路与自适应码率实践
直播平台带宽成本降低 40% 实录:FFmpeg 转码链路与自适应码率实践

摘要:主导过一个流媒体直播平台的建设:接入海康威视等 10+ 品牌监控/教学硬件,日均直播时长超 2 万小时,万级并发观看。带宽是这类平台最大的成本项,我们通过转码参数优化 + 自适应码率 + 分辨率策略的组合拳,把带宽成本降低了约 40%。这篇文章讲完整链路:监控摄像头怎么… · 2026/11/8 4:36:04

网校系统推荐:教育机构如何搭建独立品牌网校?以阔知EduSoho教培系统为例
网校系统推荐:教育机构如何搭建独立品牌网校?以阔知EduSoho教培系统为例

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 22:51:18

时间频率综合测试分析仪解决方案
时间频率综合测试分析仪解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 3:44:21

中级电工证能做电工吗?学历不高也能拿全国通用证书
中级电工证能做电工吗?学历不高也能拿全国通用证书

中级电工证能做电工吗?学历不高也能拿全国通用证书 你是不是也担心学历不高报不了电工证?其实中级电工证全国通用,不管你是初中、高中还是职高毕业,只要符合报考条件,就能顺利拿到证。今天我就从一个过来人的角度,告诉你中级电工证到底能不能做电工,实… · 2026/11/8 4:35:23

协鼎电工证多少钱 2026河南最新政策下怎么考怎么用
协鼎电工证多少钱 2026河南最新政策下怎么考怎么用

协鼎电工证多少钱 2026河南最新政策下怎么考怎么用 之前考的证在外省能不能转过来?这几乎是每个准备考电工证的人心里最大的疑问。2026年河南最新政策明确规定,… · 2026/11/8 4:35:23

张家港电工证培训学校多久拿证?别再被中介坑了
张家港电工证培训学校多久拿证?别再被中介坑了

张家港电工证培训学校多久拿证?别再被中介坑了 你是不是也这样?想考个电工证,但不知道该去哪报名,怕被中介忽悠,又担心拿证时间太长,影响找工作?别急,今天就给你讲明白张家港电工证培训学校到底靠不靠谱,多久能拿到证,以及怎么避坑。… · 2026/11/8 4:35:23

福建电工证查成绩真实经历:电工证在手,才能找到好工作
福建电工证查成绩真实经历:电工证在手,才能找到好工作

福建电工证查成绩真实经历:电工证在手,才能找到好工作 现在找工作越来越难,尤其是特种作业岗位, 没有电工证根本进不了门 。很多人在找工作的时候被问到:“你有电工证吗?”如果你没证,直接被pass。我认识一个朋友,就是因为没电工证,面试都没进… · 2026/11/8 4:35:23

专升本需要电工证吗 良心建议帮你避开实操考试踩坑
专升本需要电工证吗 良心建议帮你避开实操考试踩坑

专升本需要电工证吗 良心建议帮你避开实操考试踩坑 实操考试心里没底怕挂科,这是很多准备考电工证的人共同的焦虑。尤其是像你这样正在专升本阶段的同学,一边要应对学业压力,一边又要为未来职业发展做准备,真的很难两全。今天就从郑州金水区一位公路工程… · 2026/11/8 4:35:23

高压电工证怎么抵个税?多久拿证?平顶山房建工程从业者避坑指南
高压电工证怎么抵个税?多久拿证?平顶山房建工程从业者避坑指南

高压电工证怎么抵个税?多久拿证?平顶山房建工程从业者避坑指南 不知道去哪报名怕被中介坑,这是很多想要考高压电工证的小伙伴最头疼的事。尤其是像我们平顶山房建工程从业者,干的都是技术活,对证照要求高,想考个高压电工证提升竞争力,但又怕被那些打着… · 2026/11/8 4:34:23

电工证丢失还能补吗?千万别踩坑,丢了证等于失业
电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20

电力电缆作业证直播报名入口与办理流程良心建议
电力电缆作业证直播报名入口与办理流程良心建议

电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20

电工证丢失还能补吗?千万别踩坑,丢了证等于失业
电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20

电力电缆作业证直播报名入口与办理流程良心建议
电力电缆作业证直播报名入口与办理流程良心建议

电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 11:25:08

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 12:02:18

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/8 1:18:25

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码