QMYSQL驱动程序未在发布中加载,在调试中工作

时间:2015-05-28 13:22:25

标签: c++ qt linker qt5

我目前正在开发一个Qt5应用程序,它涉及使用带有QMYSQL的mysql数据库。它在调试会话期间就像一个魅力,但是当我在发布时编译它时,我收到错误:

  

未加载驱动程序。驱动程序未加载。

(是的,它实际上出现了两次)。

我已经尝试过包含所有DLL,如下所示:

enter image description here

但这根本不起作用,我尝试调整qmake选项,没有任何效果。有没有我不知道的伎俩?

注意:我使用的MySQL驱动程序是我自己编译的。

1 个答案:

答案 0 :(得分:1)

首先,您可能不应在您的版本中包含任何“d”结束的库。 “d”表示调试,当您在调试中编译时,Qt会使用它们,并且调试版本会链接到那些。

无论如何,你的OP的评论员都是对的,其失败的原因很可能是由于你的环境中缺少MySQL驱动程序。您需要将它包含在您的环境中或应用程序可以自动加载它的位置(如Windows上的Windows /目录或安装并添加到路径环境变量时的MySQL目录)或直接将其添加到应用程序的目录中。

您可以通过调用QLibrary::libraryPaths来查看应用尝试加载的默认位置,然后您可以检查MySQL驱动程序是否位于任何位置(因此可能不会出错)。当然,正如建议的那样在qmysql.dll和你的应用程序上使用Dependency Walker来查看哪些依赖项无法加载。

Bttom line:你需要MySQL驱动程序本身,qmysql.dll依赖于它。