Qt重新编译mysql驱动

本文介绍如何在Ubuntu 18.04和Windows 10系统中为Qt编译MySQL驱动。包括安装MySQL客户端库、配置Qt源码以支持MySQL,并将编译好的库文件整合进Qt中,最后测试数据库连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

qt重新编译mysql驱动 ubuntu18.04和win10系统

ubuntu下mysql配置

执行命令

sudo apt-get install libmysqlclient-dev

下载完后查看是否存在MySQL的库文件

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

win下下载mysql

mysql下载地址
下载后解压,将lib文件下的libmysql.dll复制到Qt5\5.14.2\mingw73_64\bin目录下面

qt源码编译mysql

使用qt打开mysql驱动的源码在

Qt5.11.1/5.11.1/Src/qtbase/src/plugins/sqldrivers/mysql

打开后修改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



PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
#这里添加的库文件是ubuntu下的win下可以自行添加
LIBS += /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20	#库文件的地址

INCLUDEPATH +=  /usr/include/mysql
DEPENDPATH +=   /usr/include/mysql

DESTDIR  = ../mysql/lib/
#编译完成后输出的路径

这个时候在编译会报错qtsqldrivers-config.pri文件找不到,修改qsqldriverbase.pri文件的内容

QT  = core core-private sql-private

# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)

include(./configure.pri)
PLUGIN_TYPE = sqldrivers
load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

至此编译成功可以在mysql/lib/ 目录下看到库文件,最后将库文件移动到

Qt5.11.1/5.11.1/gcc_64/plugins/sqldrivers

测试连接数据库

QSqlDatabase db = QSqlDatabase::addDatabase("QOCI", "QSQLITE");  
db.setHostName("localhost");  //数据库主机名   
db.setDatabaseName("scott");  //数据库名   
db.setUserName("stott");      //数据库用户名   
db.setPassword("tiger");      //数据库密码   
db.setPort(111);		//数据库的端口
db.open();          //打开数据库连接  调用 open() 方法打开数据库物理连接。在打开连接之前,连接不可用
db.close();         //释放数据库连接 
### 重新编译 QTMySQL 驱动程序 要在 Ubuntu 系统中重新编译 QTMySQL 驱动程序,可以遵循以下方法: #### 准备工作 确保系统已安装必要的依赖项。这包括 MySQL 客户端开发库 `libmysqlclient-dev` 或者 MariaDB 开发库 `libmariadbclient-dev`[^2]。 运行以下命令来更新软件包并安装所需的工具和库: ```bash sudo apt-get update sudo apt-get install build-essential libmysqlclient-dev ``` 如果使用的是 MariaDB,则替换为: ```bash sudo apt-get install libmariadbclient-dev ``` #### 获取源码 进入 QT 源码目录中的插件部分。通常位于 `$QT_DIR/src/plugins/sqldrivers/` 中。如果没有完整的 QT 源码,可以从官网下载对应版本的源代码[^3]。 假设已经安装了 QT 并知道路径,执行如下操作: ```bash cd $QT_DIR/src/plugins/sqldrivers/ ``` #### 创建构建环境 创建一个新的临时目录用于构建驱动程序,并复制必要文件到该目录: ```bash mkdir /tmp/qt-mysql-build cd /tmp/qt-mysql-build $QT_DIR/bin/qmake "$QT_DIR/src/plugins/sqldrivers/" \ "INCLUDEPATH+=/usr/include/mysql" \ "LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient" ``` 上述命令指定了 MySQL 头文件位置 `/usr/include/mysql` 和链接库位置 `/usr/lib/x86_64-linux-gnu/`[^5]。 #### 构建与安装 完成配置后,继续进行实际的编译过程: ```bash make sudo make install ``` 此步骤会生成 QMYSQL 插件并将它放置到适当的位置以便 QT 能够识别。 --- ### 常见问题处理 1. **不到 `libmysqlclient.so`** 如果遇到缺少动态链接库的情况,可能是因为未正确安装客户端库或其路径不在默认搜索范围内。通过安装 `libmysqlclient-dev` 可以解决这个问题[^1]。 2. **qmake 报错** 当 qmake 不到指定的头文件或库时,需确认 `INCLUDEPATH` 和 `LIBS` 参数设置无误。例如,某些系统可能会将库命名为 `-lmysqlclient_r`,此时应调整 LIBS 设置为匹配的实际名称。 --- ### 测试新驱动 为了验证新的 QMYSQL 驱动是否成功加载,在终端输入以下命令查看可用 SQL 驱动列表: ```bash $QT_DIR/bin/sqltest ``` 或者编写简单的测试应用程序尝试连接 MySQL 数据库。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值