一、我的编译环境
Qt:5.14.2 mingw73_64
MySQL:8.0.22 64位
二、需要
我们编译MySQL的驱动需要使用到Qt的源码和MySQL安装路径的include和lib文件夹下的东西。
源码路径:Qt安装目录\Src\qtbase\src\plugins\sqldrivers\mysql
注意:
- 当安装Qt时没有安装Qt源码,须手动下载源码,下载完成后解压到一个没有中文的路径,根据上方给出的路径依次找到我们的mysql文件夹下的pro文件。
- MySQL的安装路径最好不要有空格出现,不然编译驱动可能会失败(这个失败好像是特殊/个例的,我的就失败了,然后重新装了)…一般都可以编译成功的,先试试再重装,或者你继续去参考别人的文章找到解决这个问题的答案吧,我这里没有其它的方法提供…
- 在这篇文章里,我习惯把Qt的构建套件(Kit)叫编译器哦,我说的编译器不是Qt Creator,搞清楚了哦。
有啥不懂可以留言哦…当然也欢迎大佬指正错误。
三、Qt的下载
Qt/Qt源码下载地址:http://download.qt.io/archive/qt/
在这个文件夹下,选择自己需要的Qt版本
选中一个版本后,下方图片中标记好了源码和安装包,根据自己需求下载(点击后面的 Details 下载)。
点击Details后,在CN中的镜像节点下载,国内的快…
Qt在安装的时候可以安装源码,把 Source 这一项勾选就可以了。
Qt在安装时安装源码,那么它的源码目录为:Qt安装目录/Src
如:D:\MyQt\5.14.2\Src
四、编译驱动(主题)
当我们需要的两个东西:Qt源码、MySQL的文件路径都准备好的时候,开始。
4.1 第一步打开msql.pro
**Qt源码路径(我的路径):D:\MyQt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql
我的路径是安装Qt时就安装了Qt的源码,当安装Qt时没有安装Qt源码,须手动下载源码,下载完成后解压到一个没有中文的路径,根据上方给出的路径依次找到我们的mysql文件夹下的pro文件。
将这个文件夹下的mysql.pro文件使用Qt Creator打开,打开时会提示你使用什么编译在这里我使用 MinGW 64-bit 来编译,因为我MySQL安装的是64位的,所以使用64位的MinGW编译。
然后打开就是这个样子
4.2 第二步
第二步注释掉
QMAKE_USE += mysql
没有注释它,编译的时候就会产生一个错误: error: Library ‘mysql’ is not defined.
4.3 第三步
添加MySQL中include文件夹,引用MySQL安装路径lib文件夹下的libmysql.lib静态库
#这里的路径是MySQL安装路径下的include文件夹哦,记得替换成自己的MySQL安装路径哦
INCLUDEPATH +="D:\MySQL\include"
或者
INCLUDEPATH += D:\\MySQL\\include
#在这里引入静态库,写绝对路径好一点,不容易发生一些莫名其妙的错误(会弄的大佬除外)
#记得替换成自己的路径
LIBS +="D:\MySQL\lib\libmysql.lib"
或者
LIBS += D:\\MySQL\\lib\\libmysql.lib
4.4 第四步
这一步可以省略,但是为了方便,建议不要省略这一行代码哦。
#将我们编译好的文件放在这个项目,就是mysql文件夹下的myLib文件夹内
DESTDIR = ../mysql/myLib/
当我们四步都做完之后,就是以下的样子
4.5 第五步:编译
左下角的“锤子”按钮,完成后,我们打开mysql文件夹,在pro文件右键选择在"Explorer中显示",就可以打开mysql文件夹
mysql文件夹下
myLib文件夹下,就会有三个文件(若没有或不够三个文件,请再次编译一次,有时候需要编译两次才会出现),把这三个文件复制到我们的Qt安装目录下对应的编译器(构建套件Kit)的插件的sql驱动文件夹下…
如:D:\MyQt\5.14.2\mingw73_64\plugins\sqldrivers
注意:
- 记得复制到自己的Qt安装路径下
- 你使用什么编译就复制到什么编译器(构建套件Kit)下(如:mingw73_64编译的,就放到 \mingw73_64\plugins\sqldrivers 中)
- 数据库的版本位,跟编译器(构建套件Kit)的版本位要一致的啊
- 在这篇文章里,我习惯把Qt的构建套件(Kit)叫编译器哦,我说的编译器不是Qt Creator,搞清楚了哦。
最后一步
将Mysql的 libmysql.dll
拷贝到 \mingw73_64\bin 中;libmysql.dll
就在 D:\MySQL\lib目录中
现在我们就可以正常的使用了,如有错误请指正哦…大家一同进步一起学习。
参考链接:https://blog.csdn.net/qq_38344751/article/details/105387341