无法在 Visual C++ 中加载 SQL 驱动程序(但在 QtCreator 中加载)

Posted

技术标签:

【中文标题】无法在 Visual C++ 中加载 SQL 驱动程序(但在 QtCreator 中加载)【英文标题】:Cannot load SQL driver in Visual C++ (but loads in QtCreator) 【发布时间】:2009-10-28 16:54:53 【问题描述】:

我有一个需要 mysql 驱动程序的 QT 应用程序。我有一个用于使用 QtCreator 编译应用程序的 .pro 文件和一个用于 Visual C++ 2008 Express 的 .vcproj。代码是相同的,它可以顺利编译,但是由 Visual C++ Express 创建的可执行文件给了我以下输出并拒绝加载任何驱动程序/插件:

QSqlDatabase:未加载 QMYSQL 驱动程序 QSqlDatabase:可用的驱动程序:

我使用 QCoreApplication 来识别插件所在的位置,并且似乎两个可执行文件具有相同的路径,因此它们都应该看到插件。一个有,另一个没有。

代码是标准的。

QSqlDatabase db; db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setPort(3306); db.setDatabaseName("dbase"); db.setUserName("user"); db.setPassword("pwd"); bool ok = db.open();

QT 附带的 SqlBrowser 示例也会发生同样的情况,所以我认为代码不是问题。

【问题讨论】:

用希望更相关的 C++ 和 QT 标签编辑。 【参考方案1】:

我之前遇到过这个错误并且无法让它工作,直到我意识到插件不是使用与我的应用程序相同的配置构建的(调试与发布,doh!)。

【讨论】:

【参考方案2】:

对于遇到此问题的任何其他人,我不得不说 - 使用其中一个包含 QT 预构建的 Visual C++ 二进制文件的包比尝试自己构建它要容易得多。而且 Qt 驱动程序(至少是 4.3 版本)非常难以工作(在某些机器上它像一个魅力,但在其他机器上却找不到驱动程序,使用相同的代码和二进制文件),所以你很最好使用专用的 MySql 库。

【讨论】:

以上是关于无法在 Visual C++ 中加载 SQL 驱动程序(但在 QtCreator 中加载)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual C++ 中加载不同语言的对话框?

无法在 Visual Studio 2013 中加载 Krypton Toolkit 控件

无法在 Visual Studio Code 中加载文档的 TSLint 库

无法在 Visual Studio 2017 中加载 SDK 信息 Android SDK 管理器

C ++发布程序无法在visual studio 2015中加载图像和字体

*** 异常发生在 C++ Codegear 而不是 Visual C++