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-devsudo 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
以上.