欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决Ubuntu环境下,Qt无法连接MySQL问题

程序员文章站 2024-01-03 13:25:16
...

先说原因,本人试过多个版本Qt,其中Qt 5.9.8中包含的libqsqlmysql.so 即链接MySQL的动态链接库,是libqsqlmysql.so.18的老版本,而系统中存在的是libqsqlmysql.so.20,尝试使用软连接,但失败了。
而Qt最新的5.12.4中干脆没有MySQL的动态链接库
所以只能自己利用Qt源码自己编译了。

而Qt源码中的坑也很多(文中加粗的步骤需要重点留意

文中路径均是5.12.4版本路径,请对照当前版本修改路径

开始:

安装Qt官网下载的.run文件

安装时勾选安装源码

使用Qt连接MySQL,会出现以下问题

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

Can’t open database: Driver not loaded Driver not loaded(No such file or directory)

转到以下路径

cd /opt/Qt5.12.4/5.12.4/Src/qtbase/src/plugins/sqldrivers

使用vim 或者 gedit 编辑 qsqldriverbase.pri

sudo gedit qsqldriverbase.pri

include($$shadowed($$PWD)/qtsqldrivers-config.pri)

改为

include($$shadowed($$PWD)/configure.pri)

进入以下路径

cd /opt/Qt5.12.4/5.12.4/Src/qtbase/src/plugins/sqldrivers/mysql

编辑mysql.pro文件

sudo gedit mysql.pro

QMAKE_USE += mysql

加#表示注释

#QMAKE_USE += mysql

准备两个文件的路径

mysql.h libmysqlclient.so

使用

sudo find / -name "mysql.h"
sudo find / -name "libmysqlclient.so"

我的路径是

/usr/include/mysql/mysql.h
/usr/lib/x86_64-linux-gnu/libmysqlclient.so

如果找不到"mysql.h",需要执行

sudo apt-get install libmysqlclient-dev

在/opt/Qt5.12.4/5.12.4/Src/qtbase/src/plugins/sqldrivers/mysql路径下

sudo /opt/Qt5.12.4/5.12.4/gcc_64/bin/qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=/usr/lib/x86_64-linux-gnu/libmysqlclient.so" mysql.pro

生成MakeFile文件

随后执行

sudo make

编译过程中会有这一句话提示

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

这就是生成的mysql动态链接库路径

把生成libqsqlmysql.so拷贝到sqldrivers文件夹下

sudo cp libqsqlmysql.so /opt/Qt5.12.4/5.12.4/gcc_64/plugins/sqldrivers/

就大功告成啦!!!

参考文档:

https://www.cnblogs.com/yongqiang/p/6121515.html

https://www.jianshu.com/p/9a5007c2821e

相关标签: Qt MySQL Ubuntu

上一篇:

下一篇: