WHCSRL 技术网

2021-10-31 [研究与开发实践-问题]QT5.15.0连接MySQL5.7.1时qsqlmysql.dll驱动文件的构建

前置教程

关于解决Qt MySql没有QMYSQL驱动文件的问题详解
前置教程中针对的是远程数据库,但是其实针对本地数据库是一样的操作。
但是仅仅靠这个教程,以及其他一堆杂七杂八的教程,我并没能成功解决问题。

避坑提示

在本次环境配置中,一共踩了如下几个坑,在进行后续步骤之前,一定一定先确保这些坑已经被填了:

  1. 安装的MySQL版本一定一定要和QT版本对应上,至于如何查看mysql版本可以自行百度。我的方法就比较简单粗暴:
    QT直接查看文件名,其后跟的是64,则是64位。QT版本为64位
    而我的mysql为默认安装,安装在C:/Program Files下则为64位,安装在C:/Program Files(x86)下则为32位,我的是前者,64位。
    MySQL为64位
    我的版本能够对上,没有问题。

  2. MySQL的路径中一定一定不能包含空格,据其他大佬所说,是“LIB+=”的路径中不能包含空格,这里Program Files就有空格,其次,我原本的MySQL文件名为“MySQL Server 5.7.1”,也是一堆空格,总之最好就是选择像前置教程一样,把文件拷到桌面进行操作
    (如果包含空格,就会出现找不到MySQL文件夹下的“lib.obj”文件报错)

具体步骤

在按照前置教程进行到改写mysql.pro文件并构建后,出现了第一处与教程不同的地方:
出现了

Cannot read C:/xx/qtsqldrivers-config.pri: No such file or directory

的报错,这个问题很好解决,直接在mysql.pro的上一级文件中找到configure.pro,复制后改名为qtsqldrivers-config.pri,再include
进去就行了,文件夹如下:
在这里插入图片描述
改名如下:
在这里插入图片描述
改写代码如下:
在这里插入图片描述
然后正常运行,会出现如下报错,You need to set an executable in the custom run configuration:
在这里插入图片描述
这个报错不用理会,然后按照前置教程所说,查看Qt的前一个文件夹,发现里面并没有它说的三个文件夹
(这里要说一下,在我尝试各种方法的过程中,确实有一次看到自己的D:/下生成了lib、plugins、mkspecs三个文件夹,但是plugins/sqldrivers是空的)
因此就陷入迷茫。
后续在查看了其他教程后,才又发现,原来除了在Qt的前一级文件夹中生成,还有可能在如下文件夹中生成:
在这里插入图片描述
如图,我已经生成了lib、plugins、mkspecs三个文件夹,然后plugins/sqldrivers里面确实有我要的驱动文件。
在这里插入图片描述
之后就按照教程完成驱动的复制粘贴就OK啦!

TIPS

其实也可以设置在修改mysql.pro时设置DESTDIR,让文件输出到特定文件夹,就不用到处找了。

推荐阅读