QT连接MySQL出现QMYSQL driver not loaded的解决方法(详细解释版,必解决)

一、QT,MYSQL版本介绍

QT:5.12.9,安装目录:C:\Qt\Qt5.12.9
MYSQL Server:8.0

二、生成qsqlmysql.dll

1.配置mysql.pro

cd D:\Qt\Qt5.12.1\5.12.1\Src\qtbase\src\plugins\sqldrivers\mysql
下面有mysql.pro

修改内容如下

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
INCLUDEPATH += "D:/MySQL/include"
LIBS += "D:/MySQL/lib/libmysql.lib"
DEPENDPATH += "D:/MySQL/include"

2.修改qsqldriverbase.pri

QT  = core core-private sql-private

# For QMAKE_USE in the parent projects.
include(./configure.pri) 
PLUGIN_TYPE = sqldrivers
load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

在目录下D:\Qt\Qt5.12.1\5.12.1\Src\qtbase\src\plugins\sqldrivers

3.管理员身份运行x64 Native Tools Command Prompt for VS 2022

进到C:\Qt\Qt5.12.9\5.12.9\src\qtbase\src\plugins\sqldrivers\mysql,运行

C:\Qt\Qt5.12.9\5.12.9\msvc2017_64\bin\qmake "INCLUDEPATH+=D:/MySQL/include" "LIBS+=D:/MySQL/lib/libmysql.lib" mysql.pro
 

生成了5个中间文件:

4.编译debug版本

nmake debug

我电脑上报错,缺少mysql.h文件

C:\Qt\Qt5.12.9\5.12.9\src\qtbase\src\plugins\sqldrivers\mysql\qsql_mysql_p.h(60): fatal error C1083: 无法打开包括文件:  “mysql.h”: No such file or directory

找了很久,恰好昨天研究时下载了mysql-connector-c-6.1.11-winx64.zip的包,一股脑将这个压缩包include目录下的文件都拷贝到上面的mysql目录

再次运行nmake debug,提示缺少lib文件,将mysql-connector-c-6.1.11-winx64.zip包里的libmysql.lib文件拷贝到提示的D:\MySQL\lib目录

再次运行debug版、release版,都能成功,可以看到生成文件所在目录。

运行nmake install,可以自动将dll文件自动放到你的qt目录。

5.MySQL连接成功:

程序中配置好include目录、lib文件,运行成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值