Qt5.9.2无法加载Mysql驱动问题

首先说说我的环境:Ubuntu17.10+Qt5.9.2+Mysql5.7
在连接mysql数据库的时候出现错误
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7

我是个新手,折腾了好久,总算是解决了,记录下来,希望能对大家有些帮助.

遇事先百度,照着试一试...

先进入libqsqlmysql.so所在的目录,在安装目录下的5.9.2/gcc_64/plugins/sqldrivers中.

mini@Vantablack:~$ cd Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers/


用ldd检查一下依赖关系

mint@Vantablack:-/Qt5.9.2/5.9.2/gcc_64/plugins/sqldriverss ldd libqsqlmysql.so 
linux-vdso.so.1 => (ex00007fffaa3ad000)
libQt5sql.so.5 => /home/mini/Qt5.9.2/5.9.2/gcc_64/1ib/libQt5Sql.so.5 (0x00007f7d90380000)
libQt5Core.so.5 => /hone/mini/Qt5.9.2/5.9.2/gcc_64/lib/libQt5Core.so.5 (0x00007f7d8fc45000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7d8fa26000)
libmysqlclient.so.18 => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdC++.s0.6 (0x00007f7d8f6a0000)
...

libmysqlclient.so.18 => not found 有问题,搜索了一下,在/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20里面倒是有个.so.20,版本问题,不要想着改个名字凑合一下,我试过了的,没用...老老实实重新编译.

我的主要问题就出在编译上,首先弄一份源码过来,Src/qtbase中应该有,没有的话就去官网下一个qt-everywhere-opensource-src-5.9.3.tar.xz包,解压出来会有的,进入/qtbase/src/plugins/sqlivers/mysql中,编译.

因为我的mysql库的位置是在/usr/include/mysql,/usr/lib/x86_64-linux-gnu/ 中。所以用第二条,我看到有些地方用的是第一条,大概是因为mysql版本不同所以.so包的位置不同。

qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro

qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient" mysql.pro

编译时报错:Project ERROR: Library ‘mysql’ is not defined.
把mysql.pro中的 QMAKE_USE += mysql用#注释掉,然后再来一次.目录下会生成一个Makefile,然后make.

如果make报错:
/usr/bin/ld: cannot find -lmysqlclient_r
那就换用第二条或者是在/usr/lib/mysql/目录下创建一个软链接

sudo ln -sv /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/mysql/libmysqlclient_r.so

make之后,如果成功的话,看最后几条的信息,里面会有编译好的libqsqlmysql.so的位置,我的是/home/mini/Qt5.9.2/5.9.2/Src/qtbase/plugins/sqldrivers/
然后cd进去把libqsqlmysql.so复制到安装目录下的5.9.2/gcc_64/plugins/sqldrivers/中.

cp /home/mini/Qt5.9.2/5.9.2/Src/qtbase/plugins/sqldrivers/libqsqlmysql.so /home/mini/Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers/libqsqlmysql.so

然后应该就没问题了吧。。。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值