如何确定Qt的“***不是有效的Qt插件”错误的原因?

如何确定Qt的“***不是有效的Qt插件”错误的原因?,qt,plugins,dll,qt4,pyside,Qt,Plugins,Dll,Qt4,Pyside,当我从QPluginLoader对象打印errorString的值时,我得到以下结果: 文件“C:/pyprojects/test/qsqlpsqld4.dll”不是有效的Qt插件 我想避免几天时间去做那些费时的猜测和检查方法,我目前的网络搜索显示,到目前为止,这些方法似乎都不相关 有没有办法让Qt库自己告诉我为什么它拒绝加载这个插件 我不想猜;我想知道 背景: 我在Windows 7上运行Qt4.8.5 32位MinGW,qsqlpsqld4.dll文件也是32位的,并用MinGW编译 我正在

当我从QPluginLoader对象打印errorString的值时,我得到以下结果:

文件“C:/pyprojects/test/qsqlpsqld4.dll”不是有效的Qt插件

我想避免几天时间去做那些费时的猜测和检查方法,我目前的网络搜索显示,到目前为止,这些方法似乎都不相关

有没有办法让Qt库自己告诉我为什么它拒绝加载这个插件

我不想猜;我想知道

背景:

我在Windows 7上运行Qt4.8.5 32位MinGW,qsqlpsqld4.dll文件也是32位的,并用MinGW编译


我正在使用PySide与Qt交互。

听起来PySide想要库的非调试版本

在调试模式下,它引用以d.dll或d4.dll结尾的库。尝试抓取dll名称末尾没有d的插件,并将其放在同一位置

我最近经历了为VisualStudio2010的4.8.4版本编译一个mysql qt插件的过程,最终获得了胜利

让我知道做出更改是否能解决问题:


希望对您有所帮助。

PySide不支持MinGW。用Visual C++编写了官方PaySead分布。你需要重新编译你的插件兼容的Visual C++版本。默认情况下,PySide for Python 2.6、2.7和3.2是使用VC++2008编译的。PySide for Python 3.3是用VC++2010编译器编译的。

这至少很容易检查,所以我试过了。无骰子:我感谢您的帮助,但请记住,我希望有人能找到一种方法,使此错误消息变得更加具体。也许可以在API或环境中设置一些配置选项,以创建包含内部错误的更详细的输出。这将是理想的,它将让未来的其他人确切地知道如何解决这一问题,而不管实际原因是什么。我使用MinGW是因为我在与Microsoft SDK打了几天交道后沮丧地放弃了。它在安装时不需要正确设置自己的环境变量,我怀疑还有其他错误。比如。我唯一能让自己再次遭受这种痛苦的方法是,如果我能让Qt明确地告诉我这就是问题所在。否则,我恐怕无法证明我在gee上花了几天的时间,也许我猜。谢谢你的努力;你很可能是对的。我也希望在这里创造一个答案,帮助每个人面对这个模糊的错误信息,而不仅仅是少数几个碰巧与我有相同根源的人。目前人们甚至无法知道我的解决方案是否与他们相关。@chadjoan我将尝试使用Microsoft SDK构建Postgres驱动程序,请耐心等待