背景介绍:
Qt的桌面版包括如下一些驱动程序:[摘录于《C++ GUI Qt4 编程第二版》]
QDB2 IBMDB2 7.1 版本以及更新的版本
QIBASE Borland InterBase
QMYSQL Oracle Call Interface
QODBC ODBC(包括微软公司的QSL服务器)
QPSQL PostgreSQL的7.3版以及更高级的版本
QSQLITE SQLite第3版
QSQLITE SQLite第2版
QTDS Sybase自适应服务器
由于授权许可的限制,Qt的开源版本无法提供所有的驱动程序。当配置Qt时,既可以选择Qt本身就包含的SQL驱动程序,也可以以插件的方式建立驱动程序。公共领域不断发展的SQLite数据库将向Qt提供支持。
问题:【Windows OS下】
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers:
解决办法:
1. 首先安装MySQL数据库;
2. 将MySQL数据安装路径“MySQL\mysql-5.7.19-win32\lib”下的四个驱动文件:
libmysql.dll Release版动态库驱动模块文件
libmysql.lib Release版静态库驱动模块文件(非必需,仅用于工程的静态链接)
libmysqld.dll Debug版动态库驱动模块文件
libmysqld.lib Debug版静态库驱动模块文件(非必需,仅用于工程的静态链接)
拷贝到你的工程运行目录下;
3. 将Qt安装目录“Qt5.7.1\5.7\msvc2013\plugins\sqldrivers”下的:
qsqlmysql.dll Release版动态库驱动中间件模块文件
qsqlmysqld.dll Debug版动态库驱动中间件模块文件
拷贝到你的工程运行目录下;
4. 在你的工程运行目录下执行“windeployqt AppName.exe”(不执行此步,仍会有上述QMYSQL driver not loaded错误提示;“AppName.exe"是你应用程序的名称,请自行替换);
[2021.09.26]补充:
windeployqt这个工具只在Qt4中有。Qt5已经移除了,可以用Windows下其他工具(Dependency Walker, Windows10下这个工具已经不好用)查看你的AppName.exe程序的dll依赖信息,自己去对应的dll目录拷贝过来即可。此方法同样适用于Qt4。