我已经成功编译了 MySQL 驱动程序,但我无法强制 Qt 加载它们。
一开始应该说什么 Iv 得到了 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。
Iv 正确配置了 .pro:
QT += core 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 支持。