Qt5.12编译MySQl5.1.37驱动

1. Qt使用mysql常见问题

在使用Qt连接mysql数据库的时候,遇到过这样的报错,做一下记录和总结。

报错如下:

       (1)QSqlDatabase: QMYSQL driver not loaded
  (2)QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

Qt、Mysql编辑器版本背景:
    Qt版本是5.1.37,编译器是MSVC2015_64,是x64位。
    mysql版本是5.1.37-winx64,也是x64位。
问题解析:

  Qt目录里缺失了和Mysql的连接插件qsqlmysql.dll。在这种情况下,单纯地将Mysql目录下的lib文件夹下的libmysql.dll复制到Qt的目录下的bin目录下是无用的。详见《Qt学习笔记之MySQL数据库_浩瀚之水的专栏-优快云博客

2. 下载5.1.37相关库

查看mysql版本信息,进入mysql,输入命令:show variables like '%version_%';

下载对应的版本数据库: 

MySQL :: MySQL Product Archives

3. 安装Qt5.12

注意:安装Qt5.12的时候选择Qt的编译器Qt源码

4. 编译MySQL源码项目

Qt5.12安装目录如下

C:\Qt\Qt5.12.2\5.12.2\Src\qtbase\src\plugins\sqldrivers\mysql

双击打开mysql.pro,进入Qt creator编译器界面,添加下面的三行代码:

INCLUDEPATH +=C:/mysql-5.1.37winx64/include/    # 添加你自己的mysql安装目录下的include文件夹
LIBS += C:/mysql-5.1.37-winx64/lib/libmysql.lib # 添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件

 然后进行构建,就是界面左下角的锤子,这时会出现如下的两个错误:

Cannot read H:/qtsqldrivers-config.pri: No such file or directory
 解决方法:
在目录E:\Qt\5.12.9\qtbase\src\plugins\sqldrivers下找到configure.pri这个文件,那么我们就把原来需要qtsqldrivers-config.pri的地方注释掉,改成configure.pri。
  打开qsqldriverbase.pri文件,将第四行注释掉,即#include($ $shadowed($ $PWD)/qtsqldrivers-config.pri),然后添加include(./configure.pri)。
Project ERROR: Library 'mysql' is not defined
解决方法:注释#QMAKE_USE += mysql

编译过程中出现如下问题

遇到问题:
		error: You need to set an executable in the custom run configuration.
		不用管
	当前项与Qt安装文件夹同级的plugins 文件夹 就是编译好的 驱动文件夹:
	将生成的plugins文件夹下的qsqlmysql.dll文件拷贝到C:\Qt\Qt5.12.9\5.12.9\msvc2015_64\plugins\sqldrivers文件夹下

 

5. 编译之后得到对应的库

默认编译库在c:\plugins\sqldrivers\

将qsqlmysql.dll和qsqlmysqld.dll拷贝到Qt的安装目录下C:\Qt\Qt5.12.9\5.12.9\msvc2015_64\plugins\sqldrivers。

并且也要将自己的mysql安装目录下的lib文件夹下的libmysql.dll,复制到qt的编译器的bin目录下 

6. 测试

详见《Qt操作MySQL数据库练习(20200216)_浩瀚之水的专栏-优快云博客

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩瀚之水_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值