带有 MSVS2017 编译器的 64 位 Qt 的 libmysql.dll

Posted

技术标签:

【中文标题】带有 MSVS2017 编译器的 64 位 Qt 的 libmysql.dll【英文标题】:libmysql.dll for 64bit Qt w/ MSVS2017 compiler 【发布时间】:2018-03-30 11:25:04 【问题描述】:

我一直在使用 MinGW,为了不得到臭名昭著的输出,我所要做的就是将 32 位 libmysql.dll 文件复制到可执行文件所在的位置:

QSqlDatabase: MYSQL 驱动未加载

QSqlDatabase:可用驱动程序:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

现在我正在尝试使用 MSVS2017 64 位编译器编译我的应用程序。我尝试同时使用 32 位和 64 位 libmysql.dll 文件,但没有运气 - 我收到警告并且 QSqlDatabase 无法打开。我找到了这个网站:https://wiki.qt.io/How_to_load_a_sql_driver_correctly,但它似乎已经过时且含糊不清。任何已知的问题解决方案?

【问题讨论】:

您使用哪种 MinGW64 版本?我可以建议切换到 MSYS2 构建,并按照构建说明forums.mysql.com/read.php?117,425191,425191 @VictorGubin 我根本没有使用 MinGW,我只安装了 64 位 MSVS2017 和 UWP 编译器,以及 CDB 调试器。 【参考方案1】:

使用 MSVS 你需要qsqlmysql4.dll,通常需要从源代码构建你的 MySQL 驱动器,你可以关注Qt documentation How to Build the QMYSQL Plugin on Windows 来做。

【讨论】:

我已经按照说明构建了插件,但我有 qsqlmysql.dll 和 qsqlmysqld.dll 文件,而不是 qsqlmysql4.dll 文件。将 libmysql.dll 和我必须的其他 DLL 复制到不同的位置(例如 EXE 所在的位置或插件/sqldrivers)仍然会给我“QSqlDatabase:MYSQL 驱动程序未加载”错误。我错过了什么? 你是否在 Creator 中将库添加到 sql 中?它对我有用。 是的,谢谢,它现在可以工作了,我做了一些愚蠢的事,没有注意到,没关系:D

以上是关于带有 MSVS2017 编译器的 64 位 Qt 的 libmysql.dll的主要内容,如果未能解决你的问题,请参考以下文章

在 32 位 Xp 计算机上构建 64 位 Qt

QT用VS还是MINGW编译好,有啥区别

MSVS2012 中的 QCustomPlot

windows下 qt配置mingw64位 编译器

如何在 Windows 7 上使用 Visual Studio 2012(64 位)安装 OpenCV?

如何使用 Visual C++ 2010 Express 从 32 位环境为 64 位 Windows 编译 Qt?