随笔 - 10  文章 - 0  评论 - 0  阅读 - 6648

Qt打包程序移动到新环境时提示 QMYSQL driver not loaded

Qt版本是:Qt6.3.2
MySQL版本是:mysql8.0.33

运行时日志提示如下:

Warning: File:() Line:(0) QSqlDatabase: QMYSQL driver not loaded (2023-06-12 17:16:56)
Warning: File:() Line:(0) QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QODBC QPSQL (2023-06-12 17:16:56)

并且我打包后的程序包中已经包含连接mysql8.0所需的依赖库 libmysql.dll、libcrypto-1_1-x64.dll、libssl-1_1-x64.dll、qsqlmysql.dll,但是在新的空白环境中运行时依旧提示上述内容。

libcrypto-1_1-x64.dll、libssl-1_1-x64.dll是在 C:\mysql-8.0.33-winx64\bin 中复制的

libmysql.dll是在 C:\mysql-8.0.33-winx64\lib 中复制的

qsqlmysql.dll则需要qt编译生成,方法查看Qt6.5编译MySQL驱动最简单方法,打包过程中就已经自动复制到包里面了,不需要再手动复制了

我包里面的内容如下所示

在网上搜罗半天,试了各种方法,最后是使用process explorer比较在编译机器与目标机器执行过程中所使用到的依赖库,

发现目标机器运行过程中缺失了vcruntime140.dll、vcruntime140_1.dll两个依赖库,这两个库都属于系统库文件,它在我编译机器中的位置是C:\Windows\System32\vcruntime140.dll

将两个库拷贝到包中,就能够成功连接到数据库了。

 

我估计在满足连接mysql的依赖库条件下还是提示数据库驱动的问题,大多都是新环境中缺少系统库文件。

process explorer的下载地址是进程监视器 - Sysinternals | Microsoft Learn

process explorer查看执行过程中所使用到的依赖库的方法Process Explorer使用教程

找到具体解决问题来源是(48条消息) QT打包之解决MySQL打包driver not loaded_zhenyu-s5的博客-CSDN博客

 

posted on   清靜  阅读(204)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示