Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QMYSQL驱动程序未在版本中加载,正在调试中工作_C++_Qt_Linker_Qt5 - Fatal编程技术网

C++ QMYSQL驱动程序未在版本中加载,正在调试中工作

C++ QMYSQL驱动程序未在版本中加载,正在调试中工作,c++,qt,linker,qt5,C++,Qt,Linker,Qt5,我目前正在开发一个Qt5应用程序,它涉及到将mysql数据库与QMYSQL一起使用。在调试会话期间,它就像一个符咒,但当我在发行版中编译它时,我得到了错误: 驱动程序未加载。驱动程序未加载 (是的,它实际上出现了两次) 我已经尝试包括所有DLL,如下所示: 但这根本不起作用,我试着调整qmake选项,但没有任何效果。有什么我不知道的把戏吗 注意:我使用的MySQL驱动程序是我自己编译的 首先,您可能不应该在您的版本中包含任何以“d”结尾的库。“d”表示调试,当您在调试中编译时,Qt使用它们,并

我目前正在开发一个Qt5应用程序,它涉及到将mysql数据库与QMYSQL一起使用。在调试会话期间,它就像一个符咒,但当我在发行版中编译它时,我得到了错误:

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

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

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

但这根本不起作用,我试着调整qmake选项,但没有任何效果。有什么我不知道的把戏吗


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

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

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

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


Bttom行:您需要MySQL驱动程序本身,qmysql.dll取决于此。

您是否尝试运行
windeployqt qapp.exe
?我尝试过,但没有帮助:(使用“依赖项步行器”应用程序来查找缺少的依赖项。您可以使用此工具启动应用程序并记录每次加载DLL的尝试。使用此工具,您将快速找到缺少的库。您的MySQL客户端DLL在哪里?没有它插件无法工作。您使用了什么方法来构建MySQL驱动程序?