QT数据库驱动程序

Qt database drivers

本文关键字:驱动程序 数据库 QT      更新时间:2023-10-16

i用-plugin-sql-mysql -plugin-sql-sqlite标志构建QT。我有libqsqlmysql.a和libqsqlite.a。我在项目中使用QT。但是我的构建系统不是QT,我使用WAF。

当我尝试运行与MySQL数据库建立连接的应用程序时,我有以下问题:

QSqlDatabase: QMYSQL driver not loaded                                                    
QSqlDatabase: available drivers:                                                          
QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins      
INFO - Failed to connect to root mysql admin   

我在构建应用程序时将-lqsqlmysql添加到编译器选项中。

您可以解释QT驱动程序的工作方式,如何以及何时尝试加载驱动程序。什么是QT驱动程序(dll,lib,....)?

我认为您的应用程序正在尝试通过DLL动态加载数据库插件。该文档将帮助您找到数据库驱动程序DLL的适当位置。另外,您可以从静态上链接您的应用程序,以下是如何。

QT具有多种类型数据库的插件,这些插件位于以下位置:

$(QTDIR)/plugins/sqldrivers

首先检查MySQL插件是否存在。如果不存在插件,则意味着您无法正确编译QT,因此您应该使用启用的MySQL插件重新编译QT。否则,您的应用程序可能无法正确加载MySQL插件。QT插件在应用程序初始化期间动态加载,即QSQLDATABASE对象初始化。如果未正确设置插件位置,则不会加载任何插件。您可以查看应用程序期望通过以下QT API查找插件的位置:

QStringList QCoreApplication::libraryPaths ()

如果应用程序未指向正确的位置,则可以通过致电:

设置插件路径
void QCoreApplication::addLibraryPath ( const QString & path )

或通过在放置可执行文件的文件夹中创建qt.conf文件。在此文件中,您可以通过以下方式配置插件位置:

[Paths]
Plugins = %pluginlocation%