1.根据你的kit,选择对应的MySQL所需的文件,从这里下载,无需自己编译,一定需要选对kit版本及位数,也就是你exe编译出来所用的kit相符的:
https://github.com/thecodemonkey86/qt_mysql_driver/releases
2.打包出来的exe,新建个文件夹,放入之后cmd进入到此目录,如果你希望不按照系统PATH的环境,可以使用如下指令指定当前cmd所采用的环境,PATH=你自己的kit之bin目录:
set PATH=D:\Qt\Qt5.12.8\5.12.8\mingw73_64\bin
然后使用如下指令使用qt的封装工具复制所需文件:
windeployqt 文件名.exe
3.下载之后会得到libmysql.dll和包含qsqlmysql.dll与qsqlmysqld.dll的sqldrivers文件夹,直接把文件夹和libmysql.dll丢进exe同目录。不需要加plugins文件夹也不需要改main。
4.重点来了,32位exe在Windows需依赖vc_redist.x86.exe提供的环境,而64的需要vc_redist.x64.exe提供的环境,最新版的话在这里下载:
https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
5.既然你在打包,我用的是Inno Setup,在exe同级目录我建立了“Redist”文件,把“VC_redist.x86.exe”放进去,并使用下述内容使得可以在安装过程中静默安装“VC_redist.x86.exe”来达到我们的目的,在你自己的[Files]和[Run]添加如下格式的描述即可。
[Files]
Source: "C:\Users\2_hours\Desktop\7\Redist\VC_redist.x86.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
[Run]
Filename: "{tmp}\VC_redist.x86.exe"; Parameters: "/install /quiet /norestart"; StatusMsg: "正在安装 VC Redistributable..."; Flags: waituntilterminated runhidden
如果解决了你的苦恼点个赞支持一下 XD,有问题可以留言。