• 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
     

     

     

     

  • 相关阅读:
    【leetcode】98. 验证二叉搜索树
    Harbor(V2.8+) 登录时报错 net/http: TLS handshake timeout
    21天经典算法之折半查找
    图像修复方法研究综述----论文笔记
    Windows中的Git Bash运行conda命令:未找到命令的错误(已解决)
    【图解大数据技术】流式计算:Spark Streaming、Flink
    《Google软件工程之道》软件工程随想
    【Linux】【开发】Linux shell环境下如何产生随机数
    SQL常用脚本整理,建议收藏
    区块链技术与应用学习笔记(12-13节)——北大肖臻课程
  • 原文地址:https://blog.csdn.net/OuNuo5280/article/details/126886514