win10上Qt5.14.1+mingw64编译MySql5.7驱动,其他版本Qt也类似----本人亲测可用!!!

原文地址::https://blog.csdn.net/hp_cpp/article/details/105050910

相关文章

1、qt5.13 编译64位mysql驱动----https://blog.csdn.net/huppf/article/details/101563102

2、Windows10下QT5.13.2安装mingw64/MYSQL8.0驱动----https://www.cnblogs.com/forsee/p/11963832.html

3、windows10下使用Qt5.14.0连接MySQL5.7.28错误:QMYSQL driver not loaded的问题完美解决方案----https://blog.csdn.net/somken/article/details/103911599?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase

 

首先是新建一个Qt工程,在pro文件中

QT  += sql
1
#include <QSqlDatabase>

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //QMYSQL是固定的
db.setHostName("127.0.0.1");
db.setDatabaseName("testdatabase"); //测试的数据库名
db.setUserName("root");  //mysql数据库用户名
db.setPassword("sunshine"); //这里写你的MySql数据库密码
bool ok = db.open();

if (ok)
{
    qDebug() << "connect ok";
}
else
{
    qDebug() << "connect failed";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
如果你现在connect ok则,恭喜你不用自己编译MySql库了。如果报出MySql的驱动没有加载,则耐心继续一步步往下看,困扰了我两天多,终于解决了。我把一些踩坑的过程记录下来,以及编译成功的步骤也详细写出来,希望能帮到和我有一样需求的人。
Qt的帮助文档有篇专门写数据库驱动如何编译的“SQL Database Drivers”,可以去仔细研究这个,如果没有这个精力,也没关系,我们继续往下看:
一、确认一些环境设置以及软件版本

Qt安装的时候勾选了安装Qt源码,否则就没有下面的自己编译数据库驱动这个过程。
安装的数据库版本和编译器的位数相同,如果是x64,则两者都是x64。举例:我的编译器是用的mingw73_64,x64位。
如何查看mysql是32位还是64位?
D:\MySQL_Server_5_7\bin>mysql -V
mysql  Ver 14.14 Distrib 5.7.29, for Win64 (x86_64)
1
2
mysql是64位的——win64
3. 环境变量

你的这个能出来,如果出不来,就去相应的目录去手动打开,建议最好右键管理员运行这个,不要用cmd。输入qmake,有以下输出,则没问题,可以继续。

4.其他一些非必须的环境变量设置
比如将MySql的bin目录,lib目录加入到环境变量中。这个应该是非必须的,我是前面踩坑多了,才安装网上的一些教程做的,后来编译成功发现这个应该是非必须的。

二、开始编译
步骤一
修改mysql.pro文件

D:\Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql
1
我的Qt安装路径是在D盘,你的也是按照这个路径格式去找

#QMAKE_USE += mysql

INCLUDEPATH += "D:/MySQL_Server_5_7/include"
LIBS += "D:/MySQL_Server_5_7/lib/libmysql.lib"
1
2
3
4
只需要注释掉一行#QMAKE_USE += mysql,前面加#号就是注释掉了。
加两行,一个是你的MySQL安装目录的include路径,一个是你的libmysql.lib路径位置。
我把完整的mysql.pro文件展示一下:

TARGET = qsqlmysql

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

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin

INCLUDEPATH += "D:/MySQL_Server_5_7/include"
LIBS += "D:/MySQL_Server_5_7/lib/libmysql.lib"

include(../qsqldriverbase.pri)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
这里要避免一些坑,你的MySql路径有空格,这是一个坑,处理方式有两种:方式一,加$$quote
方式二、重新安装MySql,这个代价比较大。
那就详细说说方式一怎么操作:
举例:引用自Qt在pro文件中加入带空格的路径

LIBS += -L$$quote(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib)
INCLUDEPATH += $$quote(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include)
1
2
步骤二

最好是右键管理员运行这个,如果普通双击打开也可以,貌似也可以,后面可能要手动复制一些东西。

cd 到你的sqldrivers目录,qmake,这个是为了生成qtsqldrivers-config.pri


qmake
mingw32-make
mingw32-make install
1
2
3
如果你没看到任何报错信息,则应该会在这个目录

D:\Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers
1
中看到生成的一些dll

后缀.debug的是debug版本,这个我有纳闷,应该是qsqlmysqld.dll,才是debug版本的,这个先不去细究。
可以将这个目录中除.a的文件外的,都复制到以下路径中(如果没有的话,就手动复制进来吧,如果有的话,也是一样的,因为上面的mingw32-make install就是自动复制到下面这个路径中)

D:\Qt\Qt5.14.1\5.14.1\mingw73_64\plugins\sqldrivers
1
步骤三、最后一步

将MySql安装目录中的这两个文件复制到D:\Qt\Qt5.14.1\Tools\mingw730_64\bin中。

步骤四、测试方法
和开头的一样,Qt建工程,连接MySql数据库,看看是否连接成功,具体可以参考这个:
https://blog.csdn.net/m0_37194132/article/details/85043349

另外,如果你本机没有安装MySql,那就去官网下个C驱动的包,安装上面的步骤一样可以编译Qt的MySql库。
下载路径:https://downloads.mysql.com/archives/c-c/
选择对应的zip压缩包下载,自行解压。

参考:
QT编译Mysql驱动问题及解决方案
QT编译mysql驱动
Qt5 Mingw/Mysql 8.0.15环境搭建
————————————————
版权声明:本文为CSDN博主「hp_cpp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hp_cpp/article/details/105050910

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值