Qt配置MySql数据库驱动(Windows) 原创

Qt配置MySql数据库驱动(Windows)

更多精彩内容
👉个人内容分类汇总 👈

1、前言

  • 系统:windows10
  • Qt版本:5.12.12
  • 编译器:MinGW-64
  • MySql开发包版本:6.1.11

2、安装MySql开发包

  • 可以单独下载MySql开发包安装,也可以执行下载MySql安装包(里面包含了开发包);

2.1 MySql安装包

  • MySql安装包比较大,如果觉得下载慢可用试试在linux下用下列命令下载;
    • wget -c https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.29.0.msi

在这里插入图片描述

  • MySql安装方式这里就不说了,网上很多;

2.2 准备MySql开发库

  • 进入MySql下载地址,在右上角可以看见有支持各种语言的开发包,这里选择C API;
  • 根据说明可以看出如果要使用api 除了直接安装MySql外还可以在MySql Product Archives下载开发包;

在这里插入图片描述

  • 网上很多人都喜欢下载安装包,这里选择压缩包更简单,我这里选择了64位压缩包;

在这里插入图片描述

  • 下载后自己选择一个路径解压(后面会用到),解压后内容如下;

在这里插入图片描述

  • 进入lib文件夹,内容如下,后面我们后用到libmysql.lib

在这里插入图片描述

3、编译MySql驱动

  • 找到自己Qt安装目录下的mysql驱动源码D:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers;

在这里插入图片描述

  • 进入mysql目录,双击打开mysql.pro工程,然后注释掉QMAKE_USE += mysql

在这里插入图片描述

  • 鼠标在工程文件上右键选择添加库

在这里插入图片描述

  • 选择外部库,点击下一步;

在这里插入图片描述

  • 点击浏览,找当之前解压开发包的位置,选择libmysql.lib,然后如图取消其它的所有勾选;

在这里插入图片描述

  • 会在mysql.pro文件中生成下列三行代码;

在这里插入图片描述

  • 打开qsqldriverbase.pri文件,注释掉include($$shadowed($$PWD)/qtsqldrivers-config.pri),然后添加一行include(./configure.pri)

在这里插入图片描述

  • 然后点击构建就可以了,注意这里选择的是MinGW 64编译器Release模式;

在这里插入图片描述

  • 构建完成后就会生成如下4个库文件,但生成的库文件不在build-mysql-Desktop_Qt_5_12_12_MinGW_64_bit-Release文件夹中,可以使用Everything工具搜索文件在哪;

在这里插入图片描述

在这里插入图片描述

  • 将这4个文件复制到qt安装路径下的D:\Qt\Qt5.12.12\5.12.12\mingw73_64\plugins\sqldrivers文件夹中(注意这里要和编译驱动时用的编译器版本相同,因为我使用的时MinGW64所以才是这个路径);

在这里插入图片描述

  • 到这一步就配置完成了;

4、测试MySql驱动配置结果

  • 新创建一个工程,在pro文件中加上Qt += sql
  • 在main.cpp中使用QSqlDatabase::drivers()打印所有可用数据库驱动程序的列表;
  • 注意这里编译也是使用MinGW 64位编译器,其它编译器还没有配置;
#include <QSqlDatabase>
#include <QDebug>
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    qDebug()<<QSqlDatabase::drivers();
    return a.exec();
}
  • 没有配置的结果如下:
("QSQLITE", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
  • 配置了MySql驱动后打印结果如下:
("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

5、MSVC编译异常

  • 我在使用MSVC编译器编译时发现mysql.pro加载不出来,并且编译会报如下错误:
:-1: error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn't set
  • 这个问题很好解决,使用Everything软件搜索msvc-sersion.conf文件,找到使用的编译器路径下的那一个(这里我使用msvc2107-64);

在这里插入图片描述

  • 使用文本编辑器打开后,根据里面msvc2017编译器对应的版本号在msvc-version.conf文件最前面加上一行QMAKE_MSC_VER=1909;

在这里插入图片描述

  • 保存后再编译就没问题了。
posted @ 2024-08-21 11:26  mahuifa  阅读(0)  评论(0编辑  收藏  举报  来源