编译Qt的mysql驱动及解决 driver not loaded 错误

在网上找了很多在qt中编译mysql的资料,写的都很复杂,一会安装,一会命令行,很多都用到mingw32。今天研究了一下,其实并不复杂,方法如下:

一、开发环境:

 操作系统:windows XP

 Qt版本:4.8.4

 Qt安装目录:C:\Qt\4.8.4

 mysql版本: 5.6.13

 mysql安装目录:D:\Program Files\mysql-5.6.13-win32 (免安装版)

 编译环境:VS2010


二、编译步骤:

  1. 参照Qt助手 How to Build the QMYSQL Plugin on Windows 里的说明,在cmd窗口,输入以下命令查看路径:

cd %QTDIR%\src\plugins\sqldrivers\mysql
    显示路径为:C:\Qt\4.8.4\src\plugins\sqldrivers\mysql

2. 打开上一步查看到的路径,可以看到mysql目录下有:mysql.pro,main.cpp,README,用记事本打开mysql.pro文件,添加mysql的头文件和lib库路径,修改后的mysql.pro文件如下:

TARGET = qsqlmysql
INCLUDEPATH += "D:/Program Files/mysql-5.6.13-win32/include"
LIBS += "D:/Program Files/mysql-5.6.13-win32/lib/libmysql.lib"

SOURCES = main.cpp
include(../../../sql/drivers/mysql/qsql_mysql.pri)

include(../qsqldriverbase.pri)

 3. 在mysql目录下新建文件夹build,打开Qt命令行,输入cd C:\Qt\4.8.4\src\plugins\sqldrivers\mysql\build,然后qmake -tp vc ..\mysql.pro,在build目录生成vs2010工程

 4. 编译mysql/build目录下的VS2010工程mysql.sln,生成debug和release库:qsqlmysqld4.dll,qsqlmysqld4.lib,qsqlmysql4.dll,qsqlmysql4.lib,将这4个文件拷贝到C:\Qt\4.8.4\plugins\sqldrivers目录下,mysql插件编译结束

 5. 编写测试程序,如下,却提示driver not loaded

 

            QSqlDatabase db;
            db = QSqlDatabase::addDatabase("QMYSQL", strConnection1);
            db.setHostName(QObject::tr("localhost"));
            db.setDatabaseName(QObject::tr("test"));
            db.setUserName(QObject::tr("root"));
            db.setPassword(QObject::tr(""));
            if ( !db.open() )
            {
                QSqlError error = db.lastError();
                qDebug() << "Failed to connect to root mysql admin: " << error.databaseText();
            }
            else
            {
                qDebug() << "available drivers:";
                QStringList drivers = QSqlDatabase::drivers();
                foreach(QString driver, drivers)
                {
                    qDebug() << "\t" << driver;
                }
            }

 6. 解决driver not loaded错误的方法,将D:\Program Files\mysql-5.6.13-win32\lib\libmysql.dll拷贝到C:\Qt\4.8.4\bin目录,一切OK!


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值