首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt不加载任何数据库驱动程序

Qt不加载任何数据库驱动程序
EN

Stack Overflow用户
提问于 2017-07-31 06:04:22
回答 2查看 468关注 0票数 0

我正在将我的项目从windows server 2003(32位)上的qt4.8.4移植到win7(64位)上的qt5.3.1,我静态构建qt源代码,并动态构建qsqlmysql,但我的代码无法加载mysql qt驱动程序。错误如下所示:

代码语言:javascript
运行
复制
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers:()

我的代码如下:

代码语言:javascript
运行
复制
db = QSqlDatabase::addDatabase("QMYSQL", "*****");
db.setHostName("*****");
db.setDatabaseName("*****");
db.setUserName("*****");
db.setPassword("*****");

当我在注册表中搜索" qmysql“时,我什么也得不到,似乎qmysql驱动程序没有注册。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2017-07-31 06:40:37

默认配置只会给你sqlite支持,也许ODBC会在windows上被自动检测到。您将需要指定sql支持,并且可能还需要提供库和包含路径。例如(使用mardiadbclient For mysql):

Pre Qt 5.8:

-qt-sql-mysql -L E:\msys64\mingw64\lib -l mysql -I E:\msys64\mingw64\include\mariadb

Qt 5.8后:

-sql-mysql MYSQL_INCDIR=E:\msys64\mingw64\include\mariadb MYSQL_LIBDIR=E:\msys64\mingw64\lib MYSQL_LIBS="-l mysqlclient“-L E:\msys64\mingw64\lib

票数 0
EN

Stack Overflow用户

发布于 2017-07-31 08:36:54

在qt4.8.4中,当你静态链接qsqlmysql时,你应该这样写: Q_IMPORT_PLUGIN(qsqlmysql),但是在qt5.3.1中,名称发生了变化,你应该这样写这个宏: Q_IMPORT_PLUGIN(QMYSQLDriverPlugin)

这就是为什么我总是得到一个未解决的外部..。错误。更改名称后,我可以成功链接mysql。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45405146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档