- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从Qt应用程序访问MySql数据库,但出现以下错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QSQLITE2
QTPLUGIN += qsqlmysql
最佳答案
尝试使用dlopen()打开共享库,看看它是否已加载,如果没有加载,dlerror()会告诉您什么。我总是在Windows上遇到类似的问题。 LoadLibrary()/GetLastError()为我节省了很多次(最后一次是因为某些libiconv/libintl DLL版本错误)。在插件上运行ldd可能也有帮助。
如果dlopen()工作正常,请尝试使用QPluginLoader加载插件。如果未加载,请检查插件的buildkey。我通常通过在插件上运行字符串然后寻找诸如“buildkey”或“QT_PLUGIN_VERIFICATION_DATA”之类的字符串来以肮脏的方式进行操作。仅查看构建 key 及其周围的内容可能会给您一个想法。例如,您可能意识到在 Debug模式下编译应用程序的同时,您已在 Release模式下编译了插件。在这种情况下,构建 key 将不匹配,并且插件将无法加载。构建 key 中的所有内容都必须与您的配置匹配。请注意,版本和构建 key 的检查方式有所不同:构建 key 必须完全匹配(或匹配一些称为QT_BUILD_KEY_COMPAT的黑魔法),但在版本中,只有主版本必须完全匹配,次版本必须是Qt版本。插件使用或更高版本进行了编译,并且补丁程序级别被忽略。因此,如果您的插件是使用Qt 4.x.y编译的,那么它将适用于Qt 4.z. *版本,其中z> = x。这实际上是有道理的。
如果构建 key 看起来还可以(如果您不知道这一点的话,这不太可能),则不妨查看QLibraryPrivate::isPlugin()源代码以找出问题所在,但这对我来说似乎并不容易。 (尽管在调试器中运行此命令可能会有所帮助)。
如果QPluginLoader确实加载了插件,请检查它是否在正确的目录中并具有正确的权限。如果您到那时仍不能解决问题,那么该看一下实际加载这些插件的SQL模块源代码了。但这是极不可能的。我无数次地遇到了这个问题,它总是要么库未加载,要么构建键不匹配。
QPluginLoader成功加载插件之后的另一种方法是使用strace来确定程序是否至少尝试打开插件文件。在strace输出中搜索“sqldrivers”或“plugins”之类的内容也应该放弃Qt正在搜索其插件(特别是SQL驱动程序)的目录。
更新
是否可以将驱动程序编译为静态插件,而不用担心任何事情?我们试试看:
d:\Qt4\src\plugins\sqldrivers\psql>qmake CONFIG+=static LIBS+=-Ld:/programs/Post
greSQL/lib INCLUDEPATH+=d:/programs/PostgreSQL/include
d:\Qt4\src\plugins\sqldrivers\psql>make
d:\alqualos\pr\archserv>qmake QTPLUGIN+=qsqlpsql PREFIX=d:/alqualos LIBS+=-Ld:/g
nu/lib INCLUDEPATH+=d:/gnu/include LIBS+=-Ld:/programs/PostgreSQL/lib LIBS+=-lpq
LIBS+=-Lpath/to/plugin LIBS+=-lqsqlpsql
而不是
QTPLUGIN+=qsqlpsql
,至少文档说它应该可以工作,但我尚未对其进行测试。
#include <QtPlugin>
Q_IMPORT_PLUGIN(qsqlpsql)
关于qt - 如何使Qt了解QMYSQL驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4479551/
操作系统:Windows 10 x64 我已将 Qt 版本从 5.10.0 更新到 5.12.5。我在让我的套件再次工作时遇到了一些麻烦,但最终我可以 qmake 并构建应用程序。但一旦我启动它,应用
我想将我的数据库(mysql)连接到 ubuntu 16.04 上的 Qt 库。 但是我遇到了这个错误: QSqlDatabase: QMYSQL driver not loaded QSqlData
如何在 Qt 中加载 qmysql 驱动程序?我有以下产生这些结果的代码: ("QSQLITE", "QMYSQL", "QMYSQL3") QSqlDatabase: QMYSQL driver n
我正在运行来自 http://www.python.org/getit/ 的 python 2.7.3 (python-2.7.3.amd64.msi) 我使用的安装程序来自:http://www.l
我遇到了无法连接 MySQL 数据库的问题。然而this答案对我有用。问题是:我不想将“libmysql.dll”和“libmysql.lib”复制并粘贴到每个使用 MySQL 的项目中(如“Bast
我尝试使用 QT 中的 MySQL 模块,但没有结果,该模块存在,但 Qt 未加载它。我有这个错误 QSqlDatabase:未加载 QMYSQL 驱动程序 QSqlDatabase:可用驱动程序:Q
我目前正在开发 Qt5 应用程序,该应用程序涉及将 mysql 数据库与 QMYSQL 一起使用。它在调试 session 期间就像一个魅力,但是当我在发布时编译它时,我得到错误: Driver no
当我尝试访问 mysql 时,出现以下错误: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLI
我刚刚完成了 QT CRUD 应用程序的开发。我使用 SQLite 将信息本地存储在运行应用程序的磁盘中。这样我的应用程序就可以正常工作了。 但是该应用程序缺少中央数据库服务器。因此,我首先安装 My
首先,非常感谢那些愿意花时间帮助我解决这个问题的人。在此处发帖之前,我在许多不同的论坛上进行了大量搜索,但似乎遗漏了什么。 好吧,我正在使用 Qt5.5/MySQL Server 5.6 在 Wind
当我运行这段代码时,Qt 与 MySql 的连接出现问题 QSqlDatabase DBObject = QSqlDatabase::addDatabase("QMYSQL"); DB
我正在使用 QT-Creator 作为 Mac OS 10.8 上的 IDE 使用 QT 5.3 编写 C++ 应用程序。当我尝试使用 加载 QMYSQL 插件时出现问题 db = QSqlDatab
我正在尝试在我的 Qt 应用程序中实现一个数据库系统。为此,我正在尝试使用 MySQL(以及相关的 QMYSQL 驱动程序)。我的类连接函数写在下面。 假设 connection 被定义为一个 pri
如何使用 Pyside2 (pip) 和 python3.8 安装和加载 Qmysql 驱动程序?我已经尝试下载 git:qtbase 并从那里编译驱动程序,但我很幸运。 最佳答案 这个答案不仅包括L
我正在尝试使用适用于 64 位 Windows 的 Python 3.6 上的 PyQt5 连接到 MySQL 数据库。当我调用QSqlDatabase.addDatabase('MYSQL')时并运
我正在尝试使用带有 Qt 的 MySQL 服务器连接到数据库。它不起作用,当我运行代码时,我收到下面的错误消息。 QSqlDatabase: QMYSQL driver not loaded QSql
我有一个应用程序需要连接到 MySQL 数据库,我使用的是 Qt 4.7。我构建了 QMYSQL 插件,在我的机器上一切正常。当我尝试在另一台机器上测试应用程序时,文件夹“sqldrivers”在我的
我想在 Ubuntu 上通过 PyQt4 访问 SQL 数据库。我已经安装了 apt-get install python-qt4-sql 但是当我像这样添加数据库时: import sys from
我已经在 Windows 和一些 Linux 版本上解决了这个问题,现在是 Mac 时间了。这一切都始于以下内容: QSqlDatabase: QMYSQL driver not loaded QSq
尝试连接到 mysql 数据库时出现以下错误:未加载驱动程序。 我已经创建了一个安装程序,其中包含所有需要的 DLL 文件(libmysql.dll、plugins/qsqlmysql.dll、QT5
我是一名优秀的程序员,十分优秀!