文章首先要感谢https://blog.youkuaiyun.com/qq_38344751/article/details/105387341的作者,里面写得非常详细,我就是按里面的步骤一步一步来操作的,但是遇坑了,一段瞎折腾,总算解决了,就此记录一下。
1.在E:\Qt\Qt5.12.9\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql路径下找到mysql.pro,打开
2.修改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
LIBS += 'C:\mysql1\lib\libmysql.lib'
INCLUDEPATH += 'C:\mysql1\include'
DEPENDPATH += 'C:\mysql1\include'
DESTDIR = ./bin
include(../qsqldriverbase.pri)
有网友说include路径及库路径不能有空格,其实有没有都可以,只要用‘’括起来就好了
3.修改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
重点来了
完成以上3步,编译就通过了,不报错,但是发现找不到生成的文件,其实根本就没有生产库文件!!!
细心的网友会发现,我在mysql.pro里面设置了DESTDIR = ./bin,但是根本就找不到这个文件夹。
后面一顿折腾居然弄出来了,步骤如下:
1.选择debug模式编译(我之前使用的是release模式)
2.勾选影子构建(之前我把√去掉了)
3.输出的文件在目录E:\plugins\sqldrivers下!!(我全盘搜索找出来的。。。。)
然后把两个dll复制到E:\Qt\Qt5.12.9\5.12.9\mingw73_32\plugins\sqldrivers下就OK了。
至于为什么release模式下编译不出文件,我真不知道,有网友知道的话,可以留言探讨,谢谢!!