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的前面,或许可以解决问题。