windows下Qt5.6.0 编译Mysql驱动,并使用

windows下Qt5.6.0 编译Mysql驱动,并使用。

 

写这篇博客的原因很简单,百度一堆答案看的眼花缭乱,有用的没几个,也不想下次在安装QT数据库环境上浪费时间,也希望大家也不要在这里浪费时间。第一次Windows下安装Mysql实在是痛苦。

注意:图省事的朋友可以直接在这里下载我编译好的驱动文件,能不能使用我就不清楚了:

http://pan.baidu.com/s/1qYktUhA

 

本来Qt5.6.0已经自带了Mysql的驱动。在此目录中

C:\Qt\Qt5.6.0\5.6\mingw49_32\plugins\sqldrivers

 

如果你可以使用,恭喜你中奖了,那就大胆的用吧!然而中奖终究是少数,大部分人使用的时候都会报错。如下:(这里写成文字方便人搜索吧!)

 

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QPSQL QPSQL7

"Driver not loaded Driver not loaded"

意思很简单就是你Qt自带的驱动有问题是使用不了的,那么接下来就须要编译自己Mysql驱动,也就是库文件,上网查了很久弄了一天,其实很简单,总结了下需要的东西。

 

1.QT 源码。本来我QT是安装版本的5.6,根本就没有源码(可是苦了宝宝我了),源码的名字一般是中间有everywhere。Windows下一般是一个ZIP的压缩文档。解压到任何地方都可以。我将其解压在C:\Qt目录下也就是Qt的安装目录。

比如 :qt-everywhere-opensource-src-5.6.0.zip

QT5.6Windows安装板下载地址:http://pan.baidu.com/s/1c2t5MCw

QT5.6Windows版本的源码下载地址 :http://pan.baidu.com/s/1hs0PmQC

 

 

2.Mysql安装版就可以如果没有合适的安装板下载源码也是可以的。下面是度娘出来的详细下载与安装方法: http://jingyan.baidu.com/article/597035521d5de28fc00740e6.html

安装版本在安装的时候,这里切记的有个问题就是如图一定要选择Custom可以自定义目录,最开始一路NEXT驱动也生成出现错误,这里自定义了路径就好了我也不知道为啥,但是百度都是这么说的。

这个是我使用的路径 C:\MySQL\MySQL Server 5.5\

之后一路next吧。

这里我也给出一份Mysql5.5.30安装板下载地址:http://pan.baidu.com/s/1jIqBLVS

准备工作做好了,下面就开始编译了。

 

1.我们先找到QT安装包里面自带Mingw工具集命令窗口。

开始菜单中可以找到。

 

 

2.右键管理员的方式运行。使用CMD进入到QT源文件的带有mysql.pro文件的目录:

cd C:\Qt\qt-everywhere-opensource-src-5.6.0\qtbase\src\plugins\sqldrivers\mysql

此目录下有三个文件,不然之后会编译不过。

 

 

3. 执行Qmake ,以mysql.pro工程文件,生成Makefile,以及生成mysql库的源文件。

qmake "INCLUDEPATH+=C:\MySQL\MySQLServer5.5\include" "LIBS+=C:\MySQL\MySQLServer5.5\lib\libmysql.lib" -o Makefile mysql.pro 

生成产物:

 

 

4.执行  mingw32-make 

在C:\Qt\qt-everywhere-opensource-src-5.6.0\qtbase\plugins\sqldrivers这个目录(与编译目录不同)下会生成我们Qt所需要的mysql数据库文件

 

5.将上面生成的这个全部产物复制到:

C:\Qt\Qt5.6.0\5.6\mingw49_32\plugins\sqldrivers

目录中。

 

6.把C:\MySQL\MySQL Server 5.5\lib\libmysql.dll复制到C:\Windows目录下。

注意的是Mysql 目录有空格的请多注意下。

6部大功告成。下面就来测试下吧!

下面是测试代码:

 

 

编译输出:

 

重要提示:

如果在编译时,出现这样的错误:compilation terminated. Makefile.Release:466: recipe for target '.obj/release/main.o' failed mingw32-make[1]: *** [.obj/release/main.o] Error 1 mingw32-make[1]: Leaving directory 'D:/D/QT/qt-everywhere-opensource-src-5.6.0/qtbase/src/plugins/sqldrivers/mysql' makefile:38: recipe for target 'release-all' failed mingw32-make: *** [release-all] Error 2

原因可能有以下:

①Qt的mingw是32位的编译器,你电脑里面肯定是装了64位的MySQL,所以才会出现这个错误,你将64位的MySQL卸载掉,装一个32位的MySQL再试一下,就可以了。本质上,是32位的编译器使用64位的库,当然会出错。最好是全部采用32位的!

②Qt5.8编译驱动出错,通过换Qt版本解决。

 

你可能感兴趣的:(SQL,Qt)