• 编译 qsqlmysql.dll QMYSQL driver not loaded


    Qt 连接MySQL数据库,没有匹配的qsqlmysql.dll, 需要我们跟进自己Mysql 以及QT版本自行编译的。异常如下图:

    安装环境为

    1. VS2019
    2. Qt5.12.12(msvc2017_64、以及源码) 我的安装地址:D:\Qt\Qt5.12.12
    3. Mysql 8.1.0  默认安装地址C:\Program Files\MySQL\MySQL Server 8.1

    步骤:

    step 1:

    找到 D:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql

    用Qt Creator 打开项目

    选择64bit configure project

    step2:

    修改mysql.pro 项目文件

    如图修改4处

    注释一行

    构建==》》build all project

    完成编译

    在D:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers\build-mysql-Desktop_Qt_5_12_12_MSVC2017_64bit-Debug\lib

    就可以得到生成的dll、lib、pdb文件

    step 3:

    将生产的qsqlmysql.dll、qsqlmysqld.dll文件copy到 D:\Qt\Qt5.12.12\5.12.12\msvc2017_64\plugins\sqldrivers  目录

    step 4:

    将C:\Program Files\MySQL\MySQL Server 8.1\lib

    以及C:\Program Files\MySQL\MySQL Server 8.1\bin添加到系统PATH中

    或者

    将C:\Program Files\MySQL\MySQL Server 8.1\lib下的libmysql.dll、libmysql.lib copy到

    D:\Qt\Qt5.12.12\5.12.12\msvc2017_64\bin 下

    step 5:

    测试demo程序

    #include
    #include
    #include
    #include
     
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
        //输出可用数据库
        qDebug() << "available drivers:";
        QStringList drivers = QSqlDatabase::drivers();
        foreach(QString driver, drivers)
            qDebug() << driver;

        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
        db.setHostName("127.0.0.1");
        db.setPort(3306);
        db.setDatabaseName("mysql");
        db.setUserName("root");
        db.setPassword("root");
        bool ok = db.open();
        if (ok) {
            qDebug() << "OK" << db.lastError().text();

        }
        else {
     
            qDebug() << "error open database because" << db.lastError().text();
        }


        return a.exec();
    }

  • 相关阅读:
    labelImg
    getchar函数设置为非阻塞
    【星海出品】flask(一)demo
    Win11快速助手在哪里?Win11打开快速助手的方法
    2022世界人工智能大会|弘玑Cyclone吴迪:人机协作,乃通往数字化未来之“道”
    何以创新和体验升维?百度输入法用虚拟博主给出了答案
    数据结构作业:传输数据的增删改
    学成在线第二天
    【3D图像分割】基于Pytorch的 VNet 3D 图像分割4(改写数据流篇)
    Dubbo的使用
  • 原文地址:https://blog.csdn.net/miehuo/article/details/136378901