关于windows下Qt报告“QMYSQL driver not loaded”的解决办法
原贴地址:https://blog.****.net/gufengys/article/details/61430419
先说明一句,博主这个帖子的解决办法是用MariaDB试验的,其实跟mysql是一回事,所以帖子里都说的是mysql如何如何,请大家理解。
首先,出现这个问题有三种可能:
1.qt找不到你的mysql的驱动。
先去你的Qt的安装目录(例:D:\Qt\Qt5.8.0\5.8\mingw53_32\plugins\sqldrivers)下找找看有没有mysql的驱动
驱动的名字为“qsqlmysql.dll”和“qsqlmysqld.dll”
如果能找到这两个文件,那么恭喜你,不需要自己去编译生成这两个驱动文件了
如果去文件夹里找不到这两个文件,那您受累,继续往下看帖子
好,这种可能性先说到这里
2.qt目录下有驱动文件,但是qt找不到mysql的库文件
库的文件名为“libmysql.lib”,这个库文件应该放在Qt的bin文件夹下(例:D:\Qt\Qt5.8.0\5.8\mingw53_32\bin)
赶紧去文件夹里看看,十有八九没有啊,怎么办呢?
别愁了,去你mysql的安装目录找找,在lib文件夹里(什么?你没有安装mysql!一边玩去!!!)
回来回来,如果你真的没有安装mysql,其实也没事,博主就是安装的xmapp,因此也找不到这个库。所以,要么赶紧安装mysql,要么像楼主一样查清楚自己的mysql的版本库,赶紧去官网上下个压缩包回来吧(不要下载源码包,因为博主当时用源码包试的时候缺一个头文件,也不知道是为什么)。
我用的就是这个。
来来来,这里有个重点哈,楼主因为这个问题被搞了一整天寝食难安,注意注意:下载mysql的时候一定记得先看看你的Qt是32位的还是64位的,两个软件必须一致,要不然,你就跟博主一样各种版本的mysql下一堆吧!!!唔哈哈哈哈!!!
好的,下好了吧,去找到那个该死的库文件,复制到qt的bin目录下,到这一步,你应该已经ok了
3.qt目录下既没有驱动文件,也没有库文件
那好吧,你的工作量最大了
先下载安装mysql(如果装了就不用了),或者你有别的软件让你的机器已经运行了mysql,那就跟第二点里面说的一样,下一个压缩包回来吧。再次强调,看看你的Qt是32位还是64位,下个一致的包吧,千万别搞错了!!!
接下来就是自己动手编译mysql的驱动了,就是那两个dll文件。
编译有两种方法,一种是mysql提供的用命令去编译的方法,在帮助文档里可以查到,我就不多说,截个图吧:
下面的方法是来自于网友的帖子的,这里冒昧引用一下,大家要是不喜欢我这种借花献佛的行为就请移步原帖:
http://blog.****.net/m15814478834/article/details/49902077
这里介绍的是使用Qtcreater编译的方法:
首先找到Qt安装目录下的mysql.pro工程源码,我的路径为:D:\Qt\Qt5.8.0\5.8\Src\qtbase\src\plugins\sqldrivers\mysql,用Qt打开该工程,试着进行构建,一般来说,Qt会告诉你找不到mysql.h文件,这时候不要慌,去你的mysql安装目录下或者刚下载的压缩包里找找,找到include文件夹(例:D:\mariadb-10.1.19-win32\include\mysql),你就可以找到“mysql.h”文件了,这时候去修改mysql.pro文件,添加一句话“INCLUDEPATH+=D:\mariadb-10.1.19-win32\include\mysql”,就是为该工程包含存放mysql.h的路径
这时再去构建工程,刚才的错误不见了,新的错误出现:提示你找不到libmysql.lib文件,还是不要慌张,还是去找这个文件,还是在mysql安装路径或者刚下载的压缩包里,就在lib文件夹中(例:D:\mariadb-10.1.19-win32\lib),在mysql.pro文件中添加一句话“LIBS+=-LD:\mariadb-10.1.19-win32\lib-llibmysql”(-L后边写文件路径,-l后写文件名,不需要后缀名)
然后赶紧去重新构建工程吧,你自己制作的驱动文件就搞定啦。怎么样,开心吧,激动吧!呜哈哈哈!
先不要着急开心,把两个驱动文件(“qsqlmysql.dll”和“qsqlmysqld.dll”)复制到Qt的安装目录下的drivers文件夹中(例:D:\Qt\Qt5.8.0\5.8\mingw53_32\plugins\sqldrivers),再将libmysql.lib文件复制到Qt的bin文件夹中,再去构建你报错的工程吧,恭喜你,你搞定了!!!