QT出现没有MySQL驱动,网上参考了许多教程,几乎完全雷同,但是很多问题点没有说明,导致走了很多弯路
QT出现没有MySQL驱动,手动编译步骤
报错代码:
"QSqlDatabase: QMYSQL driver not loaded
,QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7"
压根就没有QMYSQL,那么就需要我们手动编译,非常简单。
QT版本 :5.14.2
mysql版本:64位
1.下载64位的MySQL Community Server,截至笔者发稿前最新版本是MySQL Community Server 8.0.19
下载地址:https://dev.mysql.com/downloads/mysql/
下载后解压(需安装数据库,具体教程参考其他CSDN博客)
2.在QT安装目录中找到qt安装目录找到: qt安装目录\5.13.0\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro文件,然后用QT打开该文件。在该文件中添加
#该路径是刚才下载解压备用的mysql的头文件路径
INCLUDEPATH +=“D:\Software\mysql-8.0.19-winx64\include”
#该路径是刚才下载解压备用的mysql的库文件路径
LIBS +=“D:\Software\mysql-8.0.19-winx64\lib\libmysql.lib”
#为了方便查找将来编译好的库文件,添加这个语句用来指明编译后的结果输出的位置
DESTDIR = …/mysql/lib/
同时一定要屏蔽QMAKE_USE += mysql:如下.如果不屏蔽会提示mysql库不存在.
本人v:860472025,如果有Qt、C++开发上的问题可以请教我,不过需要请我吃包辣条!
#QMAKE_USE += mysql
具体的如图示
3.编译,使用64位编译器编译!!这里使用MingW64位编译器!!
不管下面是否输出了error,直接点击左下方的小锤子或者Ctrl+B,执行编译
等待右下方构建完毕后,在mysql文件夹中就会多出来一个lib文件夹,里面会包含qsqlmysql.dll,注意在MingW编译器下只有qsqlmysql.dll,在msvc编译器下会多出一个qsqlmysqld.dll!!!!
msvc编译可能会用到这个:https://www.cnblogs.com/ax0409/p/13684418.html
4.配置
打开这个lib文件夹,里面有文件全部拷贝到 你的QT安装路径\Qt5.13.0\5.13.0\mingw73_64\plugins\sqldrivers中
如图
将 MySQL client驱动库文件拷贝到 Qt 编译工具链根目录,这样以后直接就能用而无需指定库文件路径。否则会出现“Driver not loaded”错误:
ok,大功告成,这个时候连接MySQL数据库就可以了。