博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos 7 中 QT出现QSqlDatabase: MYSQL driver not loaded
阅读量:4328 次
发布时间:2019-06-06

本文共 3588 字,大约阅读时间需要 11 分钟。

系统版本 : Centos7

QT VERSION : 5.6

测试代码:

#include 
using namespace std;#include
#include "gui/mainwindow.h"#include
#include
#include
#include
using namespace std;int main (int argc, char **argv) { //输出可用数据库 QCoreApplication::addLibraryPath("/home/njq/dev_env/Qt5.6.0/5.6/gcc_64/plugins/sqldrivers"); qDebug()<<"available drivers:"; QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug()<

出现了如下的错误:

QSqlDatabase: MYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7QSqlDatabase: an instance of QCoreApplication is required for loading driver pluginsfailed to connect to mysql "Driver not loaded Driver not loaded"

查看QT的安装目录

~/dev_env/Qt5.6.0/5.6/gcc_64/plugins/sqldrivers

有一个文件:

libqsqlmysql.so

使用ldd命令检查下依赖

[xxx@localhost sqldrivers]$ ldd libqsqlmysql.so     linux-vdso.so.1 =>  (0x00007ffcf65b4000)    libmysqlclient_r.so.16 => not found    libz.so.1 => /lib64/libz.so.1 (0x00007f452c898000)

看到 libmysqlclient_r.so.16 这个so文件的依赖没有找到

通过查找资料,发现如下解决办法

先安装MYSQL的开发环境

[njq@localhost sqldrivers]$ sudo  yum install mysql-devel

重新编译mysql驱动

[njq@localhost mysql]$ cd ~/dev_env/Qt5.6.0/5.6/Src/qtbase/src/plugins/sqldrivers/mysql[xxx@localhost mysql]$ ~/dev_env/Qt5.6.0/5.6/gcc_64/bin/qmake  #因为没有配置qmake路径,所以用了全路径[xxx@localhost mysql]$ make

看到编译后的最后一行

mv -f libqsqlmysql.so ../../../../plugins/sqldrivers/

把这个生成的libqsqlmysql.so覆盖到......./Qt5.6.0/5.6/gcc_64/plugins/sqldrivers

[xxx@localhost sqldrivers]$ mv libqsqlmysql.so  ~/dev_env/Qt5.6.0/5.6/gcc_64/plugins/sqldrivers/

然后再查看libqsqlmysql.so的依赖

[xxx@localhost sqldrivers]$ ldd libqsqlmysql.so     linux-vdso.so.1 =>  (0x00007fffc437c000)    libmysqlclient.so.18 => /usr/lib64/mysql/libmysqlclient.so.18 (0x00007f3de67bc000)    libz.so.1 => /lib64/libz.so.1 (0x00007f3de65a5000)    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f3de636e000)    libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f3de6155000)    libssl.so.10 => /lib64/libssl.so.10 (0x00007f3de5ee7000)    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f3de5aff000)    libQt5Sql.so.5 => not found    libQt5Core.so.5 => not found    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3de58e2000)    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f3de55da000)    libm.so.6 => /lib64/libm.so.6 (0x00007f3de52d7000)    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f3de50c1000)    libc.so.6 => /lib64/libc.so.6 (0x00007f3de4d00000)    libdl.so.2 => /lib64/libdl.so.2 (0x00007f3de4afb000)    libfreebl3.so => /lib64/libfreebl3.so (0x00007f3de48f8000)    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f3de46ac000)    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f3de43c6000)    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f3de41c2000)    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f3de3f90000)    /lib64/ld-linux-x86-64.so.2 (0x00007f3de6ee3000)    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f3de3d80000)    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f3de3b7c000)    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f3de3962000)    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f3de373c000)    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f3de34db000)    liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f3de32b5000)

看到问题已经搞定

重新运行程序,看到如下结果

available drivers:"QSQLITE""QMYSQL""QMYSQL3""QPSQL""QPSQL7"success171118171119171120171121171122171123171124171125171126171127171128171129171130171131171132171133171134171135171136

转载于:https://www.cnblogs.com/drnijq/p/5923354.html

你可能感兴趣的文章
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
64位MATLAB和C混合编程以及联合调试
查看>>
原生js大总结二
查看>>
PHP基础
查看>>
UVa 11488 超级前缀集合(Trie的应用)
查看>>
Django 翻译与 LANGUAGE_CODE
查看>>
[转]iOS教程:SQLite的创建数据库,表,插入查看数据
查看>>
【转载】OmniGraffle (一)从工具栏开始
查看>>
初识ionic
查看>>
java 中打印调用栈
查看>>
开发 笔记
查看>>
数据挖掘算法比赛 - 简单经验总结
查看>>
生成商户订单号/退款单号
查看>>
使用Android OpenGL ES 2.0绘图之六:响应触摸事件
查看>>
我们过去几年做对了哪些事
查看>>
ubuntu 16.04LTS
查看>>
javascript深入理解js闭包
查看>>
Java Bigdecimal使用
查看>>