Ubuntu20.04平台Qt5.14.2 编译MySQL 8.0驱动程序


0.前言

Qt 中连接数据库需要提供对应数据库的库文件支持Qt自带部分数据库的库文件,在安装路径下Qt/5.14.2/gcc_64/plugins/sqldrivers文件夹下可以找到。通常,该文件夹下没有MySQL 数据库库文件,因此我们需要自己编译后将生成的驱动文件放于该目录下。

1.准备工作

编译 MySQL 库文件需要具备下列条件:

  • 已安装 mysql-server、mysql-client、libmysqlclient-dev
  • 已安装Qt
    说明:其中 libmysqlclient-dev主要用于提供一些代码及编译所需的库文件。

1.1 Qt 自带 mysql 库文件源代码路径

本地路径/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql

1.2 修改 mysql.pro文件

cd 本地路径+ Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql

sudo vim mysql.pro

TARGET = qsqlmysql
  
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

# 将本行使用 # 号注释掉 <-----------------------------
#QMAKE_USE += mysql
<---------------------------------------------------

OTHER_FILES += mysql.json

# 添加如下两行内容 <-----------------------------------
INCLUDEPATH += /usr/include/mysql
LIBS += -L/usr/lib/x86_64-linux-gnu -lmysqlclient
# <--------------------------------------------------

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

1.3 修改 qsqldriverbase.pri文件

sudo vim ../qsqldriverbase.pri

QT  = core core-private sql-private
  
# For QMAKE_USE in the parent projects.
# 使用 # 号将本行注释掉 <----------------------------
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
# <------------------------------------------------

PLUGIN_TYPE = sqldrivers
load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

2.编译

当前还在:本地路径+ Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql

使用编译命令:
sudo 本地路径/Qt/5.14.2/gcc_64/bin/qmake mysql.pro

使用:sudo find / -name "libqsqlmysql.so.*
将找到的:libqsqlmysql.so 与 libqsqlmysql.so.debug放置于:本地路径/Qt/5.14.2/gcc_64/plugins/sqldrivers 文件夹下

到此,即可完成 MySQL 数据库支持库的编译。
我是看了许多博客,生成了库文件,但是没找到库文件在哪里,最后用 find 名零查找才找到,浪费了半下午编一个库,故写此博客,希望帮助后来人。

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值