本篇教程分为三个部分:

阅读本文之前需要先查看我的第一篇文章:

一、测试结果(测试连接代码在第一篇文章中)

1.第一种:可用驱动中有QMYSQL这个驱动,但是不能加载(刚尝试qt连接mysql的没有复制文件到指定文件夹的不存在这种情况)

4aee9ce221c1c90519c4c7f642d995a8.png

2.第二种:可用驱动中没有MYSQL驱动,并且不能加载(第一次尝试基本都是这种报错)

3ee718f35a3f6fd40c78d0ca186bead4.png

二、编译连接过程

从上述结果报错结果可以知道我们没有MYSQL驱动,那去哪找到mysql驱动呢?QT5.13.2和QT5.14.1两个版本都提供了编译MYSQL驱动的源码,只需要结合我们自己电脑上安装的MYSQL的库文件就可以编译属于自己的MYSQL驱动,MYSQL安装见前一篇文章。

1、找到QT上编译MYSQL驱动的源码

源码的位置在(以qt5.13.2版本为例):F:\Qt\Qt5.13.2\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql(小伙伴找到qt目录,安装这个文件夹顺序找)

可以看到有以下六个文件,mysql文件夹是我自己备份的文件夹,建议大家在操作之前也进行备份。要是没有这个文件夹可能是安装时选择的组件不足,可以重新安装选择所有组件。

599c2f98e9509f32d14e17f29477babf.png

2.用qt打开这个mysql.pro工程文件

打开以后会出现配置项目选择哪一种编译器的界面,这里就需要查看你自己安装的MYSQL是32位还是64位的,如果是64位的MYSQL,则需要用64位的编译器,即Desktop Qt 5.13.2 MinGW 64-bit,本文采用的是32位的。

e230a175439467bd90c2b2b91d6f113f.png

e3302261b0356228b3e08133ec1cf5a6.png

3.右击项目选择重新构建项目如下图

7cbbad1baff786704e1ca63fd70be769.png

会出现下面报错:

2f246dbbf03ecc936673a6dab6d52392.png

需要我们将 QMAKE_USE += mysql 这句话注释掉

b828e136c2c2063f7a9c54ebf4296d47.png

4.注释掉后,再次进行重新构建项目

会出现以下错误:

f530d18303ee6db24b5af61075d09db2.png

主要是因为我们没有mysql.h这个文件,那么这个文件在哪?在我们自己安装的mysql里面,在sql安装目录的include下(我的路径:F:\MySQL\MySQL Server 5.5\include)。

e8a9a5af9728230073869e2874a1f302.png

所以需要我们在.pro文件添加这些路径,也即加上下面这两句话,路径是我自己的,需要改成你们自己的:

INCLUDEPATH+="F:\MySQL\MySQL Server 5.5\include"

LIBS+="F:\MySQL\MySQL Server 5.5\lib\libmysql.lib"

5.加上这两句话后再次进行重新构建

(1)出现下面的bug表示你用的qt MinGW 位数与MYSQL位数不一致

dac456a4d6253df5d6dea4afa0a88322.png

85da284bc560f0853944be558b170bfa.png

(2)若出现下面的bug,若是不出现可能就表示编译出驱动,直接看第六步。

0f91538a27ae4cdaf87a5a73847bfe19.png

这个bug下面图片上的这句话有关系,我测试的时候原来的相对路径不好用,所以我才用的绝对路径,大家可以自由选择,改成自己文件的路径即可。

659f0d1b187c5b2a53eae7788df43c4f.png

我们按照这个路径打开这个文件(用记事本即可)可以看到include里面的qtsqldrivers-config.pri文件并不存在,而存在configgure.pri这个文件,所以我们将include包括的文件改成configgure.pri这个文件,即改为:include(./configure.pri)

5d0a8a35e188fd50d18210e2493dabbc.png

eb9144df02c6288b4e8031e0c86c1632.png

0fb7d24c2e180d05385813d1b24a33ba.png

6.再次进行重新构建,构建过程可以查看“4编译输出”这一栏的输出

出现下面的结果就表示我们编译成功了!

0a86c06af20dd66034810792a240587d.png

7.编译成功以后就可以直接去找我们编译成功后的驱动,因为我们没有设置输出目录所以默认在qt安装的盘下,比如我的qt在F盘,所以这个输出也在F盘,路径:F:\plugins\sqldrivers

e8c9d9eacf017f1d79b8c2adb6f0ecd2.png

912d978f3cc67dab22f8f48b7324339d.png

8.将编译好的驱动(所有文件复制过去就行,省事)放到对应的MinGW编译器的文件夹中,我用的32位的就放在:F:\Qt\Qt5.13.2\5.13.2\mingw73_32\plugins\sqldrivers中,64位的就在F:\Qt\Qt5.13.2\5.13.2\mingw73_64\plugins\sqldrivers中。

8bc8f3183da74158397c845d72ebb9d0.png

9.编译测试代码,注意是测试代码,不是上边的mysql代码。测试代码见第一篇文章。注意编译也需要用对应的编译器,生成是32位的就要用32位的编译器,64位的就是64位的编译器。

730f0577afe6d7a92c4a678c7274b8eb.png

结果如下,这表示已经存在驱动,但是还没有加载,还需要我们从mysql的安装目录复制文件到MinGW的文件夹中。

ebe5e8980ea049d3d3a73ab977dccb58.png

10.将F:\MySQL\MySQL Server 5.5\lib中的libmysql.dll与libmysql.lib复制到mingw的bin文件夹中即:F:\Qt\Qt5.13.2\5.13.2\mingw73_32\bin。

b2bf1ab8af85c8a9d175397600529176.png

f1bb5a173ee890e0fc7c6db1f1428367.png

11.再次对测试代码进行测试发现成功!

9564dd712b16e455a0dfea42e1c028c5.png

转载参考分享此篇文章请注明出处!

文章来源: blog.csdn.net,作者: TEER,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_41639829/article/details/113714030

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐