【发布时间】:2013-01-16 16:18:57
【问题描述】:
我已成功编译 MySQL 驱动程序,但我无法强制 Qt 加载它们。
一开始应该说的我得到了ODBC和SQLite驱动程序包(安装Qt之后),它们也没有被检测到。
在 *C:\Qt\4.8.0\plugins\sqldrivers* 我得到了:
qsqlite4.dll
qsqlite4.lib
qsqlited4.dll
qsqlited4.lib
qsqlmysql4.dll
qsqlmysql4.lib
qsqlmysqld4.dll
qsqlmysqld4.lib
qsqlodbc4.dll
qsqlodbc4.lib
qsqlodbcd4.dll
qsqlodbcd4.lib
qsqlpsql4.dll
qsqlpsql4.lib
qsqlpsqld4.dll
qsqlpsqld4.lib
我也放入的 qsqlmysql*.* 文件:
C:\Qt\4.8.0\bin
应用程序\
应用\调试\
应用\发布\
应用\sqldrivers\
当然,我也安装了 QtSql*.dll。
我已经正确配置了 .pro:
QT += 核心gui网络sql
我正在运行这段代码:
#include <QSqlRecord>
#include <QSqlError>
QLibrary mysqllib("qsqlmysqld4.dll");
mysqllib.load();
auto t1 = mysqllib.isLoaded();
qDebug()<<"my library loaded"<<mysqllib.isLoaded();
QPluginLoader plug("qsqlmysqld4.dll");
plug.load();
auto t2 = plug.isLoaded();
qDebug()<<"mysql plugin is loaded"<<plug.isLoaded();
ui->textEditContent->append( "--SQL DRIVERS SUPPORTED:--\n" );
FOREACH( auto driver, QSqlDatabase::drivers() )
ui->textEditContent->append( " " + driver + "\n" );
QLibrary 和 QPluginLoader 返回 true。而 QSqlDatabase::drivers() 是空的。 我做错了什么? Qt 看不到 C:\Qt\4.8.0\plugins\sqldrivers 中的所有驱动程序。 Iv 使用相同的编译器 (MSVC2010) 编译 Qt 和 SQL 驱动程序,没有错误。我正在运行我的代码几个月。任务是添加 MySQL 支持。
【问题讨论】:
标签: mysql qt plugins driver qtsql