Qt5 QSqlDatabase: QMYSQL driver not loaded

针对情况,qt支持mysql,但是找不到mysql驱动,我报的错误是:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7

环境是ubuntu16 qt版本是qt6

通过查看qt文档,找到了安装方法,但是安装中也是缺各种文件,一下是文档中的安装方法

文档中写的很明确,需要自行编译 mysql.pro 需要告诉 mysql的头文件位置等

按照文档操作 遇到了很多问题

缺少mysql.h,-lssl,g++,libmysqlclient_r.so

缺少mysql.h这个问题很奇怪,我电脑有lnmp的环境,也就是mysql已经安装,后来索引了所有和mysql相关的安装包,找到了解决方案,因为每个人的环境不同,可能用的安装包也不同,我这次遇到的大多数问题都是因为 ubuntu的版本过高,导致很多软件包已经失效造成的。

root执行  apt-cache search all |grep mysql

结果很多,其中有一个 libmysql-ocaml-dev  ,安装

实际上我们 直接 apt 安装mysql的时候,并不包含安装包和编译需要的一些文件,只安装了mysql运行的必要文件,另外,如果你的mysql不是apt安装,而是自行下载编译安装的,应该不存存在缺少mysql.h的问题。安装完成后,  在/usr/include/mysql 有 mysql.h这个文件。

然后 去编译 mysql.pro ,注意包含文件夹 改成 /usr/include/mysql 和 /usr/lib 不出意外 qmak过程中不会出错,我很多环境中都编译过,qmake都没出错过,都是接下来的make会报错误。

二。然后make,报错 缺少 -lssl

这个根据每个人环境不用可能缺少不同文件,不论你缺少-l 哪种文件,都去apt中找就可以,方法

执行  apt-cache search all |grep lib文件名

大多数情况 都会找到一个  类似的文件 ,文件名各不相同 ,以dev结尾,不确定是哪个就把类似的都装上。

 

三。最后我遇到的是缺少 libmysqlclient_r.so 这个文件

这个文件根据环境不同,有些人不缺少,有些人根本找不到安装包。后来发现,ubuntu14版本是有这个安装包的,叫做  libmysqlclient-dev 。但是ubuntu16上并没有这个安装包,强制安装虽然也能装上,但是只有 libmysqlclient.so 而没有 libmysqlclient_r.so

  尝试安装了以下包

libmysql-cli-dev ,mysql-common ,mysql-client,libmysqlclient-dev,均没有找到

解决方案

首先 查找 libmysqlclient.so 这个文件

能够找到一个,如果你连这个文件都找不到,请自定去百度安装方法,我在所有安装过mysql的机器上,都没遇到过缺少这个文件,不论是apt安装还是编译安装。

然后在同目录下 创建软连接  ln -s libmysqlclient.so libmysqlclient_r.so

创建完后的文件列表。实际上 ,以前的ubuntu版本,安装libmysqlclient-dev后会自动创建这个软连接, 而不知哪个版本开始ubuntu 需要手动创建这个链接了。

执行 make,没有错误,然后执行make install 

再次运行自己写的文件,已经可以链接数据库了

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/ferrysu/blog/878074

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值