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

本文导航

    • 0.前言
    • 1.准备工作
      • 1.1 Qt 自带 mysql 库文件源代码路径
      • 1.2 修改 `mysql.pro`文件
      • 1.3 修改 `qsqldriverbase.pri`文件
    • 2.编译


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 名零查找才找到,浪费了半下午编一个库,故写此博客,希望帮助后来人。

你可能感兴趣的:(Qt)