我目前正在开发Qt5应用,该应用涉及将MySQL数据库与QMYSQL一起使用。在调试 session 期间,它的工作原理像一个咒语,但是当我在发行版中对其进行编译时,出现了错误消息:
(是的,它实际上出现了两次)。
我已经尝试过包括所有DLL,如下所示:
但这根本不起作用,我尝试调整qmake选项,但没有任何效果。有我不知道的把戏吗?
注意:我使用的MySQL驱动程序是我自己编译的。
最佳答案
首先,您可能不应该在发行版中包含任何以“d”结尾的库。 “d”表示调试,当您在调试中进行编译时,Qt将使用它们,并且将调试构建链接到这些构建。
无论如何,OP的注释程序都是正确的,失败的原因很可能是由于环境中缺少MySQL驱动程序。您需要将其包含在您的环境中,或者将应用程序自动加载到该位置(例如Windows上的Windows/目录或安装并添加到路径环境变量中的MySQL目录)或将其直接添加到您的应用程序目录中。
您可以通过调用QLibrary::libraryPaths
来查看应用尝试加载的默认位置,然后可以检查MySQL驱动程序是否在这些位置中的任何一个位置(很可能不会因此出现错误)。当然,如建议的那样,请在qmysql.dll上以及您的应用程序上使用Dependency Walker,以查看未能加载哪些依赖项。
Bttom行:您需要MySQL驱动程序本身,qmysql.dll依赖于它。