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驱动的主要内容,如果未能解决你的问题,请参考以下文章

升级到qt5.12.0碰到资源文件编译的错误

Qt5.12.x 编译QFtp项目

Qt5.12.x 编译QFtp项目

麒麟系统开发笔记:从Qt源码编译安装之编译安装Qt5.12

同样,未加载 QT 5.12.2 QMYSQL 驱动程序。图书馆虽然

Qt5.12.2编译qwebengine开H264支持