无法在 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 Studio 2013 中加载 Krypton Toolkit 控件
无法在 Visual Studio Code 中加载文档的 TSLint 库
无法在 Visual Studio 2017 中加载 SDK 信息 Android SDK 管理器