解决QMYSQL driver not loaded问题

前言

之前都是在Qt5.51上开发,连接mysql数据库一直没有问题,换到5.15.2后一直报错

一查才发现\5.15.2\msvc2019_64\plugins\sqldrivers目录下没有qsqlmysql了,5.5.1是有的,5.15.2是要自己编译的。。。

下载源码

安装qt的时候没有选择下载源码,用在线安装器下载源码预计3小时。。。呵呵。。。果断选择在国内镜像网站下载,5.15.2Index of /qtproject/archive/qt/5.15/5.15.12/single/ (ustc.edu.cn)。两分钟搞定。

编译

把源码解压到qt安装路径下,打开\qtbase\src\plugins\sqldrivers\mysql,用Qtcreator打开mysql.pro。安装需要依赖mysql的库,我的电脑安装了mysql直接把mysql安装目录下的\MySQL\MySQL Server 8.0\include

\MySQL\MySQL Server 8.0\lib

复制到

\qtbase\src\plugins\sqldrivers\mysql

像这样

然后修改mysql.pro文件如下

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#屏蔽这个
#QMAKE_USE += mysql

#以下路径根据自己的mysql安装路径添加
LIBS += -L$$PWD/lib -llibmysql
INCLUDEPATH += $$PWD/include
DEPENDPATH += $$PWD/include

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

移动文件

编译成功后就会在Qt安装所在盘符的plugins目录下生成qsqlmysql的release和debug版本,比如笔者的qt5.15.2安装在D盘,则会生成到D:\plugins\sqldrivers下,如下:

然后把这两个dll复制到\5.15.2\msvc2019_64\plugins\sqldrivers目录下,我还以为这样就行了,然后运行依然报错,但与之前不同:

这时还需要把\MySQL\MySQL Server 8.0\lib目录下的libmysql.dll和libmysql.lib复制到\5.15.2\msvc2019_64\bin目录下。

重新编译之后不报错了,打完收工。

相关推荐

  1. Edge问题解决教程

    2024-03-13 03:54:02       40 阅读
  2. 问题解决记录-pypcd

    2024-03-13 03:54:02       38 阅读
  3. 问题解决方案

    2024-03-13 03:54:02       40 阅读
  4. 20240208问题解决

    2024-03-13 03:54:02       31 阅读
  5. 解决toFixed精度问题

    2024-03-13 03:54:02       27 阅读
  6. 解决跨域问题

    2024-03-13 03:54:02       22 阅读

最近更新

  1. 构建安全稳定的应用:SpringSecurity实用指南

    2024-03-13 03:54:02       0 阅读
  2. 事务的范围比锁的范围大

    2024-03-13 03:54:02       0 阅读
  3. 深度解析:如何利用Python高效挖掘SQLite潜力

    2024-03-13 03:54:02       0 阅读
  4. C# 策略模式(Strategy Pattern)

    2024-03-13 03:54:02       0 阅读
  5. 【网络协议】PIM

    2024-03-13 03:54:02       1 阅读
  6. 浅谈chrome引擎

    2024-03-13 03:54:02       1 阅读

热门阅读

  1. 【笔记】道路不平度的功率谱密度计算时的问题

    2024-03-13 03:54:02       22 阅读
  2. MogDB/openGauss关于PL/SQL匿名块调用测试

    2024-03-13 03:54:02       22 阅读
  3. 从菜鸟到大师细看程序员的五种层次

    2024-03-13 03:54:02       22 阅读
  4. 抓包是什么?我们为什么要抓包?

    2024-03-13 03:54:02       20 阅读
  5. Vue中怎么使用router进行页面传参

    2024-03-13 03:54:02       21 阅读
  6. 用游戏面试应聘者的方法

    2024-03-13 03:54:02       22 阅读
  7. 继续与否的决策

    2024-03-13 03:54:02       21 阅读
  8. 区块链技术的应用场景和优势

    2024-03-13 03:54:02       19 阅读
  9. Rust 注释用法

    2024-03-13 03:54:02       27 阅读