windows下编译
1、拷贝MySQL的lib下的libmysql.dll和libmysql.lib文件复制到C:\Qt\Qt5.14.0\5.14.0\mingw73_32\bin目录下或者复制到项目的编译的debug和release目录。
2、通过Qt 5.14.0 (MinGW 7.3.0 32-bit)进入CMD状态
3、进入Cd C:\Qt\Qt5.14.0\5.14.0\Src\qtbase\src\plugins\sqldrivers
4、qmake -- MYSQL_INCDIR="D:/Develop/MySQL/x86/include" MYSQL_LIBDIR="D:/Develop/MySQL/x86/lib"
5、执行mingw32-make命令进行编译
6、执行mingw32-make install命令进行安装
ubuntu下编译
参考:https://blog.csdn.net/pineappleli/article/details/107150466
遇到问题:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
很明显缺驱动呗,但是百度了很久缺没有解决问题,所以整理记录一下。方法简单来说就是把libqsqlmysql.so放到qt的安装目录的sqldrivers文件夹下,如Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers中,进入该目录发现果然没有libqsqlmysql,可能是qt为了推广自己的数据库sqlite吧。那么这个libqsqlmysql.so如何获取?最靠谱的方法还是源码编译。
1 安装qt时勾选源码
2 进入qt安装目录中的Qt5.9.2/5.9.2/Src/qtbase/src/plugins/sqldrivers/mysql路径,修改mysql.pro文件。
-
INCLUDEPATH+=/usr/include/mysql
-
LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient
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)
3 注释文件Qt5.9.2/5.9.2/Src/qtbase/src/plugins/sqldrivers/qsqldriverbase.pri中的include那行。
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
4 在mysql文件夹中执行qmake。如果提示缺目录则手动创建并赋权。
5 执行make。注意看最后给出的位置信息,如../plugins/sqldrivers,即Qt5.9.2/5.9.2/Src/qtbase/src/plugins/sqldrivers/plugins/sqldrivers
6 这个文件放到目录Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers后,就OK了。