zoukankan      html  css  js  c++  java
  • QT5.13之后的版本需要自行编译Mysql的driver

    前言

    QT5.13版本后无法使用Mysql。


    一、Mysql缺少报错

    1.在QT中使用

    db = QSqlDatabase::addDatabase("QMYSQL");//加入mysql数据库
    

    2.然后会报以下错误:

    QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

    3.查看D:SoftwareQT5.14.2mingw73_64pluginssqldrivers目录下(根据自己QT的安装目录修改)
    sqldriver
    注:如果没有qsqlmysql.dll文件,则说明需要自己编译源码中Mysql模块来生成qsqlmysql.dll。然后将其放到该目录下,则才可以继续使用Mysql。

    二、源码中编译Mysql生成qsqlmysql.dll

    1.源码准备,如果在以前安装过程中没有选择安装源码,则可以在重新安装选择安装源码,只要与原安装不在一个目录即可,然后用完卸载,至少我是这样做的。

    源码安装

    2.然后在目录C:QtQt5.14.25.14.2Srcqtbasesrcpluginssqldrivers(根据自己安装目录修改)下可以找到如下图的文件夹:

    源码中mysql所在目录

    3.打开mysql文件,点击mysql.pro进行配置:

    mysql.pro

    4.修改mysql.pro

    include(C:/Qt/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/configure.pri)
    TARGET = qsqlmysql
    
    HEADERS += $$PWD/qsql_mysql_p.h
    SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
    
    #QMAKE_USE += mysql
    
    OTHER_FILES += mysql.json
    
    
    PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
    include(../qsqldriverbase.pri)
    
    #电脑中Mysql软件的安装目录 mysql5.5/,需要更改为自己电脑的Mysql安装目录
    win32: LIBS += -LD:/Software/database/mysql5.5/lib/ -llibmysql
    
    INCLUDEPATH += D:/Software/database/mysql5.5/include
    DEPENDPATH += D:/Software/database/mysql5.5/include
    

    5.注意点击编译后生成的文件可能会在安装QT源码时选择的顶级目录下,我的是在C盘目录下找到。

    生成结果

    6.将其拷贝到D:SoftwareQT5.14.2mingw73_64pluginssqldrivers中。就可以正确的在QT中使用Mysql了。

    总结

    都是坑。

    新增:需要将安装mysql的libmysql.dll拷贝到QT的bin目录下

  • 相关阅读:
    2020面向对象程序设计寒假作业2 题解
    题解 P3372 【【模板】线段树 1】
    Global variant VS local variant
    u2u
    深入浅出PowerShell系列
    深入浅出WF系列
    debug
    深入浅出SharePoint系列
    InfoPath debug
    深入浅出Nintex系列
  • 原文地址:https://www.cnblogs.com/Raowz/p/14568856.html
Copyright © 2011-2022 走看看