Qt作为跨平台app开发的主要工具和语言,应用非常的广泛。而在数据库方面MySQL则受到用户的青睐。那么如何将这两个结合起来进行项目开发呢?直接安装各自的软件包是否可以使用呢?很遗憾,此法不通!!!即使Qt5以后的版本中自带有Mysql的驱动,但还是不能正常加载的,会提示如下错误信息:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QPSQL QPSQL7 "Driver not loaded Driver not loaded"
解决办法就是:下载源码,重新在自己的电脑环境下编译MySQL,生成所需要的库文件(驱动)。
一、所需要的软件及下载地址
1、Qt Creator
文件:qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe
地址:http://download.qt.io/archive/qt/5.4/5.4.1/
2、Qt源码
文件:qt-everywhere-opensource-src-5.4.1.zip
地址:http://download.qt.io/archive/qt/5.4/5.4.1/single/
3、MySQL
文件:Mysql5.5.30
地址:http://pan.baidu.com/s/1jIqBLVS
二、安装
1、安装Qt Creator
这个比较简单,直接默认路径安装即可,安装完成后的软件信息如下:
2、安装MySQL
这里切记的有个问题:一定要选择Custom,才可以自定义安装目录。为什么一定要自定义安装目录呢,原因很简单,由于默认的安装目录为:C:\Program Files,路径中存在空格,这会导致后面Qt中使用MySQL失败。所以选择Custom自定义安装目录。
这里我使用的是C:\MySQL\MySQL Server 5.5\
之后一路next,并完成MySQL的配置,所有全部选择默认即可。
三、编译Qt源码
1、我们先找到QT安装包里面自带Mingw工具集命令窗口。开始菜单中可以找到。
2、右键管理员的方式运行。使用cd命令进入到QT源文件的带有mysql.pro文件的目录(我的解压后放在了下面的目录里):
cd C:\Qt\qt-everywhere-opensource-src-5.6.0\qtbase\src\plugins\sqldrivers\mysql
![](http://pubimage.360doc.com/wz/default.gif)
3、执行Qmake ,生成Makefile,以及生成mysql库的源文件。
qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\libmysql.lib" -o Makefile mysql.pro
4、执行mingw32-make命令
在C:\Qt\qt-everywhere-opensource-src-5.4.1\qtbase\plugins\sqldrivers这个目录下会生成我们Qt所需要的mysql数据库文件
![](http://pubimage.360doc.com/wz/default.gif)
5、将上面生成的文件全部复制到下面目录内:
C:\Qt\Qt5.4.1\5.4\mingw491_32\plugins\sqldrivers
6、把C:\MySQL\lib\libmysql.dll复制到C:\Windows目录内
大功告成。下面就来测试下吧!
测试代码:
在Qt工程文件中添加:QT+=sql,头文件包含#include <QSqlDatabase>,添加如下代码:
![](http://pubimage.360doc.com/wz/default.gif)
如果你还没有建立自己的数据库,那么注释掉d.setDatabaseName("dbName");这个语句,就可以连接成功了。