这篇文章我打算来介绍一下如何构建qsqlmysql.dll,由于版权原因,在新版的Qt里是不自带该dll的,这样对我们编写数据库程序会很麻烦。(你用ODBC?那没事了)
我在网上也查了很多资料,但根据步骤来总是会报错,提示没有mysql.h
这个头文件。下面就记录一下我成功编译的过程。
# 基于cmake的步骤
在6.1之后的Qt版本中,Qt公司删除了qmake而更换成了cmake的方式来构建项目文件,下面就是我总结的使用cmake生成的方法。
注意: 路径的前段部分(软件的安装位置)每个人可能都不一样,但是路径的后段部分应该是一样的,请自行修改。
1.准备好Qt的源代码,如果没有可以在Qt的安装目录打开MaintenanceTool.exe
启动Qt组件管理,在里面勾选Src
把源码下载下来。
2.打开cmake-gui
,选择目标文件夹为D:\Qt\6.1.1\Src\qtbase\src\plugins\sqldrivers
,并设置生成文件夹为D:/Qt/6.1.1/Src/qtbase/src/plugins/sqldrivers/build
3.点击左下角的Configure
,会提示生成的目录不存在是否创建,直接点是就可以了。
4.编译器这里选择MinGW Makefiles
,然后点击Finish
5.等待生成完成后,把FEATURE_sql_mysql
后面的勾勾上,然后把其余的FEATURE_sql
后面的勾取消。
6.再次点击左下角的Configure
,可以发现上面的红框已经消失了,说明配置成功了。然后点击Generate
,生成Makefiles
。
7.这时配置文件已经构建完成了,接下来就是生成dll了,打开PowerShell
切换目录至D:/Qt/6.1.1/Src/qtbase/src/plugins/sqldrivers/build
,输入mingw32-make
开始编译生成dll。
没有报错,说明生成成功。
8.最后打开目录D:\Qt\6.1.1\Src\qtbase\src\plugins\sqldrivers\build\plugins\sqldrivers
,就可以看到生成好的qsqlmysql.dll
了。
# 基于qmake的步骤
注意: 路径的前段部分(软件的安装位置)每个人可能都不一样,但是路径的后段部分应该是一样的,请自行修改。
1.准备好Qt的源代码,如果没有可以在Qt的安装目录打开MaintenanceTool.exe
启动Qt组件管理,在里面勾选Src
把源码下载下来。
2.进入D:\Qt\6.0.3\Src\qtbase\src\plugins\sqldrivers
目录下,打开sqldrivers.pro
这个文件。
3.在左侧文件树中打开mysql
文件夹,选择mysql.pro
打开。
4.修改里面的内容:
-
注释掉
QMAKE_USE += mysql
这一句 -
增加下面三行代码(注意把
D:/MySQL/
改为你MySQL的安装路径):1 2 3
LIBS +=-LD:/MySQL/lib -llibmysql INCLUDEPATH += D:/MySQL/include DEPENDPATH += D:/MySQL/include
5.点击Qt左下角的小锤子进行构建,不出意外的话就可以在D:\Qt\6.0.3\Src\qtbase\src\plugins
这个路径下看到build
开头的文件夹,在.\plugins\sqldrivers
目录下就能看到编译好的dll了。
6.最后将qsqlmysql.dll
放入D:\Qt\6.0.3\mingw81_64\plugins\sqldrivers\
里就行了。如果链接数据库时还报错,就把libmysql.dll
复制到Qt的编译器的D:\Qt\6.0.3\mingw81_64\bin\
目录。