Ubuntu使用Qt编译qsqlmysql

1. 说明

Qt下载安装完成之后,没有自带MySQL的库,必须通过Qt源代码编译.

现象是Qt使用MySQL时会报错:

Driver not loaded Driver not loaded

实际上是缺少:

/opt/Qt5.14.2/5.14.2/gcc_64/plugins/sqldrivers/libqsqlmysql.so

本文章记录使用Qt的编译过程.

前提1:

已经安装了mysql

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

sudo apt-get install libmysqlcppconn-dev
sudo apt-get install qtbase5-private-dev

前提2:

已经安装下载了源代码(安装Qt时选择Source)

即Qt目录下有gcc_64和Src.

2. 编译qsqlmysql

使用root权限QtCreator打开,在终端中运行(如果qt安装在用户目录则不需要root权限):

sudo ./opt/Qt5.14.2/Tools/QtCreator/bin/qtcreator

之后在qtcreator中打开:

/opt/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql.pro

 修改mysql.pro:

TARGET = qsqlmysql

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

#修改屏蔽mysql
#QMAKE_USE += mysql

OTHER_FILES += mysql.json

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

#增加mysqlclient库
INCLUDEPATH+=/usr/include/mysql
LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient
修改qsqldriverbase.pri:
QT  = core core-private sql-private

# For QMAKE_USE in the parent projects.
#修改屏蔽此处,增加configure.pri
#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

之后运行Release,生成Makefile.

在Makefile目录下命令行执行:

make clean

make all

make install

此时就得到了文件:

/opt/Qt5.14.2/5.14.2/gcc_64/plugins/sqldrivers/libqsqlmysql.so

以上.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值