编译mysql动态链接库解决QMYSQL driver not loaded问题

qt初次开发mysql时,常会碰到QSqlDatabase: QMYSQL driver not loaded问题
原因是qt缺失qsqlmysql.dll 与qsqlmysqld.dll,解决方案是
通过源码编译出qsqlmysql.dll 与qsqlmysqld.dll

以下为64win7下用64位qt编译64位mysql动态链接库

一、安装mysql
mysql源码位于
你的qt安装目录\你的qt版本号\Src\qtbase\src\plugins\sqldrivers\mysql
一、安装mysql
1、官网下载:https://dev.mysql.com/downloads/file/?id=494993
mysql-8.0.20-winx64.zip
2、解压压缩包至C:/mysql
3、设置MYSQL_HOME环境变量
3.1MYSQL_HOME
计算机-》右键-》高级系统设置-》环境变量-》系统变量-》新建
在对话框中
变量名:MYSQL_HOME
变量值:C:\mysql\mysql-8.0.20-winx64
确定
3,2PATH
系统变量->Path->编辑
在变量名最前端:输入%MYSQL_HOME%%;
重启主机

二、编译qsqlmysql.dll 与qsqlmysqld.dll
1、找到mysql源码并用qt打开他
qt安装目录\当前qt版本号\Src\qtbase\src\plugins\sqldrivers\mysql
2、编辑mysql.pro文件
于文件下方添加如下三行
LIBS += $$(MYSQL_HOME)/lib/libmysql.lib
INCLUDEPATH += $$(MYSQL_HOME)/include
DEPENDPATH += $$(MYSQL_HOME)/include
3、项目->重构->Ctrl+b(编译)
4、找到编译后的文件
qt安装目录\当前qt版本号\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers
找到刚刚编译出的4个文件
libqsqlmysql.a
libqsqlmysqld.a
qsqlmysql.dll
qsqlmysqld.dll

5、将qsqlmysql.dll与qsqlmysqld.dll复制添加到qt中
qt安装目录\当前qt版本号\mingw73_64\plugins\sqldrivers
6、重启qt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章