Qt Sql驱动程序的问题

时间:2011-11-23 09:29:32

标签: mysql database qt

我有以下奇怪的情况,我需要一些帮助:

我正在使用MySQL访问构建一个Qt应用程序。为此,我有: - 专用的建筑机器,使用Qt 2010.05和MySQL 5.1仅用于库,Windows 7 32位。本机创建安装包。 - 专用的开发机器,CentOS 5.5 - 两台试验机: - - Windows 7的“始终”全新安装 - 另一台带有较新Qt的Windows 7机器也用于其他东西。

我已经在今年2月的某个时间(在bilding机器上)构建了该应用程序的先前版本,它运行良好且完美,加载了MySQL驱动程序(我把它放在sqldrivers目录中,如其他人所示)。安装包安装,无处不在(至少在我的所有Windows机器上)。

现在,我在同一台机器上构建了另一个应用程序版本。在安装包中,唯一重要的区别是可执行文件(和一些HTML文件,但这些文件不相关)。其他一切都是一样的。当我在构建机器上运行新的可执行文件时,我得到(“QSQLITE”,“QMYSQL3”,“QMYSQL”,“QODBC3”,“QODBC”)作为QSqlDatabase :: drivers()输出。如果我在任何其他机器上运行NEW exectuable,我会得到一个空的驱动程序列表。如果我在任何机器上运行OLD包它就可以工作......

两个Processess(旧的可执行文件,新的可执行文件)加载的模块基本相同,除了qtmysql DLL加载到旧版本而不是新版本。

你遇到过这种情况吗?如果是,你有可行的解决方案吗?

谢谢, F。

1 个答案:

答案 0 :(得分:2)

Qt只会加载与所用程序或Qt版本兼容的插件。请参阅Deploying Plugins文档。

您还可以尝试使用QPluginLoader手动加载插件,并在未加载时检查报告为QPluginLoader::errorString的内容(如果无法修复,请将错误消息添加到您的问题中它仍然)。