您的位置:首页 > 编程语言 > Qt开发

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

2013-08-11 18:27 561 查看
在网上找了很多在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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: