Qt本机release版本能连接mysql,但是到其他机器上就报错driver not loaded
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt本机release版本能连接mysql,但是到其他机器上就报错driver not loaded相关的知识,希望对你有一定的参考价值。
我再本机运行的时候已经把,plugins添加exe的执行文件夹下面了,用了process Explorer把需要的dll都放到exe路径下了。把libmysql.dll也放到同级目录下了,还是不行解决不了。
用的Qt版本是Qt5.8
2.将以前编译的mysql驱动程序拷入qt文件夹位置放错.
3.你的程序写错了.
4."driver not loaded" 是由query.lastError().text()抛出的错误.
5.gcc版本不一样(本机和目标机).
既然知道原因了,解决起来也就非常轻松了.
1.重新安装qt,重新安装mysql驱动
2和3的解决方法我就没有什么好说的了.
4. 说明你的query在创建的时候没有和qsqldatabase建立起关联.正确的方法是声明qsqldatabase后就声明query.如果你希望一 个连接能够和多个query关联使用如下语法:QSqlQuery query(db),db是QSqlDatabase的实例名.
5.同步gcc版本咯..
首先,运行如下测试代码:
//don't forget about QT+= sql
qDebug() << QSqlDatabase::drivers();
QSqlDatabase db( QSqlDatabase::addDatabase( "QMYSQL" ) );
qDebug() << db.lastError();追问
我本机运行没有问题,但是移植到其他机器上就报错。
参考技术B 题主解决了吗 我也遇到同样的问题,网上说的方法都试过了并没有什么卵用qt的软件使用了mysql,在本机可以使用但是发布到别的机器上出现运行错误,driver not l
第一点windeployqt.exe text.exe 会生成sqldrivers,在此目录下有qsqlmysql.dll
第二点: mysql安装目录的bin下libcrypto-1_1-x64.dll libssl-1_1-x64.dll,安装目录的lib下libmysql.dll放到和exe同级目录下.
第三点:运行mysql时,发现系统缺少vcruntime140_1.dll,你的mysql都不能运行,那qt肯定也不行啊;
所以要先搞vcruntime140_1.dll到C:WindowsSystem32
以上是关于Qt本机release版本能连接mysql,但是到其他机器上就报错driver not loaded的主要内容,如果未能解决你的问题,请参考以下文章