问题描述
使用Qt使用Mysql功能,编译Mysql的驱动以及dll文件(高版本Qt需要自己编译dll),打包软件发布后,在其他电脑中打开,Mysql数据库不能正常使用,记录一下解决过程。
环境信息
QT:5.13.2
编译器:MSVC 2017 64
Mysql:8.1.0
解决过程
1、网上查询解决方案,发现缺少以下三个依赖库:
- libmysql.dll
- libcrypto-1_1-x64.dll
- libssl-1_1-x64.dll
其中,libmysql.dll路径按照MSVC编译器路径,我的路径为:D:\Software\1.Program\Qt5.13.2\5.13.2\msvc2017_64\bin
另外两个dll,使用everything寻找后,添加到打包文件的根目录,发现仍然不能使用Mysql。
2、查询libmysql.dll的依赖
首先在win界面搜索VS,然后选中vs开发人员命令提示符:
输入dumpbin /dependents libmysql.dll,查询到依赖库为:
发现,依赖库为libssl-3-x64.dll和libcrypto-3-x64.dll库,随即查询这两个库目录为:D:\Software\2.Tools\mysql-8.1.0-winx64\bin,即mysql安装目录。更新这两个库到打包软件根目录,发现还是不能运行,后续发现依赖的VCRUNTIME140_1.dll库,根目录中不存在,拷贝过来后,终于可以正常使用Mysql。