Qt5.12编译MySQl5.1.37驱动
Posted 浩瀚之水_csdn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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数据库_浩瀚之水的专栏-CSDN博客》
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)_浩瀚之水的专栏-CSDN博客》
以上是关于Qt5.12编译MySQl5.1.37驱动的主要内容,如果未能解决你的问题,请参考以下文章