在qt环境下使用mysql数据库,绕不开自己动手编译mysql驱动。qt支持众多数据库访问,但默认情况下只提供了sqllite、odbc两种访问接口,官方解释是mysql不支持开源LGPL协议。
Note: When using Qt under Open Source terms but with a proprietary database, verify the client library’s license compatibility with the LGPL.
网上查了好些编译mysql驱动教程,自己动手后发现走了好多弯路,根据官方手册轻轻松松直达成功,贴出来供大家借鉴。
1、帮助文档搜索“SQL Database Drivers ”定位到数据库驱动部分;
2、切换路径如:cd /d D:\WindowsApps\Qt\Qt5.14.1\5.14.1\Src\qtbase,输入$configure -help,结尾出现:
[…]
Database options:
-sql-<driver> ........ Enable SQL <driver> plugin. Supported drivers: db2 ibase mysql oci odbc psql sqlite2 sqlite tds [all auto] -sqlite .............. Select used sqlite3 [system/qt]
[…]
3、切换路径并执行:
cd /d D:\WindowsApps\Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers
qmake -- MYSQL_INCDIR="C:\\Program Files\MySQL\MySQL Server 5.7\include" MYSQL_LIBDIR="C:\\Program Files\MySQL\MySQL Server 5.7/lib"
正常情况时参考官方给出结果:
4、运行 ‘mingw32-make’.
5、运行’mingw32-make install’安装编译好的驱动qsqlmysql.dll
备注:以上路径基于我自己的qt和mysql安装路径,大家自己做对照修改。如果一次没有通过,请再尝试以下2点修改(按照正常逻辑,下面的修改是没有必要的,我是在走弯路的过程中加上去的,后来没有删除):
- 在D:\WindowsApps\Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql路径下的mysql.pro文件中添加头文件和库文件引用:
INCLUDEPATH += “C:\\Program Files\MySQL\MySQL Server 5.7\include”
LIBS += "C:\\Program Files\MySQL\MySQL Server 5.7\lib\libmysql.lib"
- 在D:\WindowsApps\Qt\Qt5.14.1\5.14.1\mingw73_64\bin路径添加“libmysql.lib”和“libmysql.dll"