手动编译Qt5.15 mysql插件(msvc)

1. 找到源码路径

首先找到自己电脑上安装的Qt对应版本的mysql插件源码路径,比如我电脑上的路径:G:\dev_library\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql

2.下载mysql-connector-c

链接:https://downloads.mysql.com/archives/c-c/,下载Windows (x86, 64-bit), ZIP ArchiveWindows (x86, 32-bit), ZIP Archive后解压到上面的源码路径中

3.修改配置文件

修改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)

contains(QT_ARCH, i386) {
    MYSQL_LIB_PATH = $$PWD/mysql-connector-c-6.1.11-win32
    DESTDIR = $$PWD/output/x86
} else {
    MYSQL_LIB_PATH = $$PWD/mysql-connector-c-6.1.11-winx64
    DESTDIR = $$PWD/output/x64
}
LIBS += -L$$MYSQL_LIB_PATH/lib -llibmysql
INCLUDEPATH += $$MYSQL_LIB_PATH/include
DEPENDPATH += $$MYSQL_LIB_PATH/include

注意变量MYSQL_LIB_PATH 指定的路径,然后修改源码路径的上一级路径中的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.创建一个编译脚本

新建一个build.bat脚本文件,将下面内容复制到脚本里面,并根据自己电脑上的环境修改变量:

::设置环境变量,需要根据自己电脑上的环境更改相应路径,下面是编译64位dll的环境

::设置编译器,x64选择x64,amd64,x86_amd64都可以,x86选择x86,amd64_x86都可以
set ARCH=amd64
::设置vcvarsall.bat脚本所在位置,在VS的安装路径中
set VCVAR="D:\Microsoft Visual Studio\2022\VC\Auxiliary\Build\vcvarsall.bat"
::设置Qt环境路径,编译x64则选择对应x64版本的qmake
set QMAKE="G:\dev_library\Qt\5.15.2\msvc2019_64\bin\qmake"
::设置jom程序路径,在QTCreator的安装路径中
set MAKE="G:\dev_library\Qt\Tools\QtCreator\bin\jom.exe"

:: 打开终端回显
@echo on

:: 创建中间文件输出目录
if not exist %ARCH%_output (
    mkdir %ARCH%_output
)

:: 引入msvc编译环境
call  %VCVAR% %ARCH%

@echo on
:: 进入中间文件输出目录
cd %ARCH%_output
:: 若存在Makefile,则清理上一次编译的中间文件
if exist ./Makefile (%MAKE% clean)

%QMAKE% -spec win32-msvc ../mysql.pro
%MAKE% -f ./Makefile qmake_all

:: 编译debug版本
%MAKE% -f ./Makefile.Debug

:: 编译release版本
%MAKE% -f ./Makefile.Release

pause

5.编译

此时的文件目录列表如下:
手动编译Qt5.15 mysql插件(msvc)_第1张图片
双击运行build.bat生成的插件dll在output\x64output\x86

  • 复制dll到对应的plugin目录中,例如我电脑上的:G:\dev_library\Qt\5.15.2\msvc2019_64\plugins\sqldrivers
  • 复制mysql-connector-c-6.1.11-winx64\lib\libmysql.dll到bin目录中,例如:G:\dev_library\Qt\5.15.2\msvc2019_64\bin

6.完事儿

这里推荐一个我自己写的数据库操作工具类:https://github.com/daonvshu/QtDao

你可能感兴趣的:(Qt,qt,mysql,开发语言)