• VS+QT编译出现QMYSQL driver not loaded


        身为JAVA开发工程师,项目需求开整QT做前端。遇到QMYSQL driver not loaded问题。感觉版本的问题是遇到开发编译过程中最多的。再此做以记录》》

     但凡出现:QMYSQL driver not loaded还是未加载QT5core.dll,以及debug编译正常还是release编译运行报错,亦或是未找到.cpp文件。

     起初处理QMYSQL driver not loaded时,QT版本是V5.14.1,显示缺少QTmysql 驱动。故此单独下载给配置后,该问题正常,但是又诱发了未加载QT5core.dll问题。核查后是QT的MySQL库文件用的版本不一致。当然,该问题也会诱发debug编译正常还是release编译运行报错。

    所以针对QMYSQL driver not loaded问题的正确解决很关键。(使用QT连接MySQL的过程中出现:QSqlDatabase: QMYSQL driver not loaded、QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7、Sql connect failed、"Driver not loaded Driver not loaded"。)

    原因:项目里面没有QMySQL的驱动导致的

    解决方案:

    1.在QT安装目录下导入或打开mysql.pro:F:\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql

    2.修改配置文件mysql.pro和qsqldriverbase.pri

    mysql.pro修改如下:

    1. TARGET = qsqlmysql
    2. HEADERS += $$PWD/qsql_mysql_p.h
    3. SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
    4. #QMAKE_USE += mysql
    5. OTHER_FILES += mysql.json
    6. PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
    7. include(../qsqldriverbase.pri)
    8. #mysql安装目录下
    9. INCLUDEPATH+="D:\Program Files\mysql-5.7.35-winx64\include"
    10. LIBS+="D:\Program Files\mysql-5.7.35-winx64\lib\libmysql.lib"
    11. #构建生成对应版本的MySQL配置文件存放位置
    12. DESTDIR="D:\Program Files\mysql-5.7.35-winx64\lib\abc"

     qsqldriverbase.pri修改如下:

    1. QT = core core-private sql-private
    2. # For QMAKE_USE in the parent projects.
    3. #include($$shadowed($$PWD)/qtsqldrivers-config.pri)
    4. include(./configure.pri)
    5. PLUGIN_TYPE = sqldrivers
    6. load(qt_plugin)
    7. DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

    清理后重新构建即可:

    生成的dll如下:

    而后将生成的dll全部拷贝到:

    F:\Qt5.14.1\5.14.1\msvc2017_64\plugins\sqldrivers

    完成后运行重新构建工程即可。

      如果出现如下问题则查看处理如下:

    1)打开mysql.h文件失败,则查看参数mysql.pro配置路径是否正确或者是否有加“”。

    2)出现:LNK1181: 无法打开输入文件“

    D:\Program Files\mysql-5.7.35-winx64\lib.obj
    

           a) 关闭QT中其他项目保证只有一个mysql依赖生成项目

           b) 清除项目,进行重新构建,实在不行先清除项目-》关闭项目-》打开重新构建

       3) Library 'mysql' is not defined 找不到mysql,注释掉 #QMAKE_USE += mysql
     

     

     

     

  • 相关阅读:
    Chiitoitsu
    11月新书预告——GNN、深度学习和元宇宙
    【防作弊】Unity防本地调时间作弊
    通过Amazon EventBridge监控AWS资源发送告警至钉钉
    在 Python 中使用 Selenium 从下拉菜单中选择选项
    BBR/CUBIC 共存时的 buffer 挤兑
    【博客472】k8s中如何使用shared memory
    2024最新软件测试【测试理论+ UI 自动化】面试题(内附答案)
    Docker 日志管理 - ELK
    华为云项目部署
  • 原文地址:https://blog.csdn.net/OuNuo5280/article/details/126886514