首页 > 数据库 >Qt打包程序移动到新环境时提示 QMYSQL driver not loaded

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

时间:2023-06-12 18:34:47浏览次数:60  
标签:Qt driver x64 dll QMYSQL 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博客

 

标签:Qt,driver,x64,dll,QMYSQL,loaded,打包
From: https://www.cnblogs.com/isleeping/p/17475728.html

相关文章

  • QT的http post
    QT+=network#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>#include<QWidget>#include<QObject>#include<QDebug>#include<QHttpMultiPart>#include<QNetworkAccessManager>#include<QNetw......
  • qt6.5.0使用windeployqt发布程序提示Creating qt_ar_qm... Cannot open. : 拒绝访问
    报错内容如下图这是一个软件bug,qt社区的解决办法是,使用新版本6.5.1或6.6.0 ......
  • PyQt5 扫描远程端口
    #-*-coding:utf-8-*-#@Time:2023/6/916:00#@Author:wangyafeng#@FileName:main.py.py#@Email:yafengwang@dingtalk.com#@Software:PyCharmimportsysfromPyQt5.QtWidgetsimportQApplication,QMainWindowimportscanportimportthreadingimpor......
  • MQTT消息发送和接收的实现
    我是不会的,全是从网上搜的,最终整理拼合的可以使用了,使用C#和VS2019,MQTT使用3.1.0版本,需要注意的是不同的版本代码是不一样的,对于咱这种不会的,当然是以能用为主了,你要是安装的最新的4.0版本,那还是换换吧首先需要在nuGet中引用下面的三个,MQTTnet3.1.0、MQTTnet.Extensions.Managed......
  • Qt 事件系统总结
    参考:(35条消息)Qt事件循环及QEventLoop的使用_kupeThinkPoem的博客-CSDN博客(35条消息)Qt消息机制:事件分发和事件过滤_qt消息过滤_SOC罗三炮的博客-CSDN博客Qt事件系统总结Qt事件在Qt中,事件(event)是一些对象,它们都派生自抽象类QEvent事件是应用程序所关心的,......
  • [Qt开发]一口气搞懂串口通信
    ......
  • 基于QT实现的影院票务系统[2023-06-11]
    基于QT实现的影院票务系统[2023-06-11]1系统权限管理系统分3种用户权限:A游客权限-注册会员,查看电影场次信息,购买电影票。B会员权限-登录系统,管理个人信息,查看电影场次信息,购买电影票。C票务管理权限-登录系统,管理电影场次信息,查看电影票售卖情况,管理会员。以上为基础需......
  • Qt编译报错error: exception handling disabled, use -fexceptions to enable的解决方
    如题,在Qt中使用了C++标准库中的异常处理机制,即trycatch语句,在编译时报错error:exceptionhandlingdisabled,use-fexceptionstoenablecatch(std::exceptionexcp)解决方法:在Qt的工程文件中添加 CONFIG+=exceptions或者CONFIG-=exceptions_off,然后再重新编译就可以了......
  • QT多线程(线程互斥)
    (文章目录)前言线程互斥是指在多线程并发执行时,为避免多个线程访问共享资源时发生冲突而采取的一种机制。本篇文章我们就这个问题来了解一下什么叫线程互斥,又如何解决线程互斥的问题。一、导致问题产生的原因和解决方法如果多个线程同时访问同一共享资源,可能会导致数据不一致......
  • QT多线程基础
    (文章目录)前言本篇文章来讲解一下QT中的多线程使用方法。其实线程这个概念对于我们来说并不陌生,main函数在多线程中一般就被称为主线程。在QT中,使用QThread类可以方便地创建新的线程并在其中执行任务。以下介绍一些常用的QT多线程的技术和方法。一、多线程概念介绍多线程是......