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

Rog*_*gue 5 c++ linker qt qt5

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

驱动程序未加载.驱动程序未加载.

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

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

在此输入图像描述

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

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

Res*_*ion 1

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

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

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

底线:您需要 MySQL 驱动程序本身,qmysql.dll 依赖于它。