VS2017+QT5.9遇到This application failed to start because it could not find or load the Qt platform plu

VS2017+QT5.9遇到This application failed to start because it could not find or load the Qt platform plugin “windows” 的问题解决方案

VS2017+QT5.9遇到This application failed to start because it could not find or load the Qt platform plugin “windows” 的问题解决方案

问题描述:

在vs2017+QT5.9 debug模式下能成功运行程序,但release下则会报错,如下图所示
在这里插入图片描述
尝试了网上的一些方法,比如把 qt安装目录下的plugins\platforms文件夹拷到vs编译出的release文件夹内之类的方法,结果毫无用处。


原因分析:

通过process explorer 软件查看exe运行时调用的dll文件发现问题所在。release下exe调用的是anaconda里面的QT的动态链接库,因此会报错。
在这里插入图片描述
而在debug模式下调用则是我安装的msvc2017_64的动态链接库,如下图所示。
在这里插入图片描述


解决方案:

问题就是在系统环境变量中设置anaconda的环境变量和 QTmsvc2017_64的顺序导致的,进入系统环境变量的path中可以看到anaconda的环境变量顺序在QT msvc2017_64前面,这会导致程序优先调用anaconda下的qt动态链接库,就会产生错误。
在这里插入图片描述
解决办法就是把QT msvc2017_64的环境变量移到anaconda的前面后保存,如图所示,再关闭vs2017重新打开,就能成功运行release下的程序了。
在这里插入图片描述
这时候我们再用process explorer 软件查看release下exe运行时调用的dll文件可以看到此时调用的就是msvc2017_64下的qt 动态链接库。
在这里插入图片描述

同理, 很多人在pyqt中遇到同样的问题,可以试试将anaconda的环境变量移到QT msvc2017_64的前面,或许可以解决问题。

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 这个错误提示意味着Qt框架无法从指定路径(/home/test/code/test)中提取插件元数据,因为它不是一个合法的插件。通常出现这个错误的原因是路径中包含Qt识别为无效的文件或文件夹,例如非插件文件、错误版本的Qt插件等等。为了解决这个问题,可以尝试以下措施: 1. 确认路径中的文件夹和文件是否属于Qt插件,如果不是,则删除它们或将其移动到其他位置; 2. 确认Qt版本和插件版本是否匹配,如果不匹配,则需要升级Qt或下载适当版本的插件; 3. 尝试在不同的路径下尝试使用同一个插件是否出现同样的错误,如果是,则可能是插件本身存在问题,需要重新下载或联系插件开发者解决。 需要注意的是,在处理Qt插件时,要遵循一定的规范和流程,以确保插件能够正确安装和使用。如果您是Qt插件的开发者,可以参考Qt插件开发指南和文档以确保插件的正确性和稳定性。 ### 回答2: “qt failed to extract plugin meta data from '/home/test/code/test'\ not a plugin"这个错误是由于Qt框架无法从指定路径中的文件中提取插件元数据而导致的。一般来说,这个错误是由以下原因之一引起的: 1. 指定的路径中没有找到插件文件或该文件并不是一个插件文件。 2. 插件文件可能已经损坏,或者与当前Qt版本不兼容。 3. 插件文件可能不是用Qt插件系统编写的。 针对这个问题,可以尝试以下几种解决方法: 1. 检查指定路径是否正确。如果路径不正确,尝试修复路径或修改代码。 2. 检查插件文件是否存在或是否正确。如果插件文件损坏或不兼容,请尝试升级Qt版本或重新安装插件。 3. 确认插件文件是否使用Qt插件系统编写。如果不是,请尝试使用Qt插件系统编写插件文件。 总之,这个错误是由于Qt无法正确读取指定路径中的插件文件而引起的,解决方法需要根据问题的具体原因进行处理。 ### 回答3: 该错误信息是由Qt编译器在编译插件时输出的。该错误通常表示Qt试图从指定目录下的一个非插件文件中提取插件元数据,但该文件实际上并不是一个插件。 这种情况可能有很多种原因。其中一个可能是,编译器错误地将一个普通文件与插件文件混淆了,因此试图提取元数据时会出错。这可能是由于文件扩展名错误、编译器设置不正确或重命名文件等原因导致的。 另一个可能性是,可能存在文件系统或磁盘损坏,导致文件系统内部结构出现问题。在这种情况下,可能会出现仅在特定文件或目录中出现的错误。 要解决此错误,可以尝试执行以下操作: 1. 确认文件确实是插件文件,并正确指定了扩展名。 2. 检查编译器配置,确保插件文件正确地被处理并安装到正确的目录中。 3. 找出问题文件并重新编译或移动文件到正确的目录中。 4. 检查磁盘或文件系统,确定是否存在问题并修复它们。 总之,要解决这个错误信息,需要对编译器设置、文件命名以及文件系统进行仔细检查,保证文件和目录的正确性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值