频道栏目
首页 > 资讯 > MySQL > 正文

windows系统下Qt5.6.0编译Mysql驱动,并使用的实例教程

18-07-28        来源:[db:作者]  
收藏   我要投稿

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

本来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的安装目录。

~0,-4%.html

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版本解决。

相关TAG标签
上一篇:关于ORACLE索引的学习记录
下一篇:webpack版本问题解析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站