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