ubuntu18.04编译qt5.14.2 mysql数据库驱动问题
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
解决方案:
1.安装qt5.14.2时勾选源码;
2.安装mysql相关库
sudo apt-get install libmysqlclient-dev
3.修改编译文件
3.1 进入qt安装目录中的/home/user/Qt5.14.2/5.14.2/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)
3.2 打开并修改 /home/user/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/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
4.编译源码
先切换到qmake所在的路径下,然后执行下面命令(命令中的具体路径要根据实际情况修改)
sudo ./qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/aarch64-linux-gnu -lmysqlclient" /home/user/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql.pro
如果没报错,执行下面的命令
sudo make -j4
等待编译完成,执行下面命令安装编译好的库文件
sudo make install
5.总结
问题不难解决,但过程很繁琐。这是综合了网上各种资源 整理出来的解决方案,亲测有用,希望可以帮到大家。
参考文献:
1.https://blog.csdn.net/pineappleli/article/details/107150466
2.https://blog.csdn.net/qq_36430621/article/details/106728719