You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MSVC2019编译Qt MySQL驱动失败求助

问题:32位MSVC2019编译Qt MySQL驱动失败
  • 此前用MinGW编译Qt MySQL驱动完全正常,所有MinGW项目均可连接MySQL,但新项目要求必须使用32位MSVC编译的DLL
  • 尝试用MSVC2019编译驱动失败,查阅Qt文档等资料未解决,控制台输出及错误提示如下:

控制台输出

**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.2.5
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86'

C:\Program Files\Microsoft Visual Studio\2022\Community>C:\Qt\5.15.2\msvc2019\bin\qtenv2.bat
Setting up environment for Qt usage...
Remember to call vcvarsall.bat to complete environment setup!

C:\Qt\5.15.2\msvc2019>cd C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers

C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers>qmake -- MYSQL_INCDIR="D:/Qt/Apps/connectors/mysql-connector-c-6.1.11-win32/include" MYSQL_LIBDIR="D:/Qt/Apps/connectors/mysql-connector-c-6.1.11-win32/lib"

Running configuration tests...
Done running configuration tests.

Configure summary:

Qt Sql Drivers:
  DB2 (IBM) .............................. no
  InterBase .............................. no
  MySql .................................. no
  OCI (Oracle) ........................... no
  ODBC ................................... no
  PostgreSQL ............................. no
  SQLite2 ................................ no
  SQLite ................................. yes
    Using system provided SQLite ......... no
  TDS (Sybase) ........................... no

Qt is now configured for building. Just run 'nmake'.
Once everything is built, you must run 'nmake install'.
Qt will be installed into 'C:\Qt\5.15.2\msvc2019'.

Prior to reconfiguration, make sure you remove any leftovers from
the previous build.


C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers>nmake

Microsoft (R) Program Maintenance Utility Version 14.32.31332.0
Copyright (C) Microsoft Corporation.  All rights reserved.

        cd sqlite\ && ( if not exist Makefile C:\Qt\5.15.2\msvc2019\bin\qmake.exe -o Makefile C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\sqlite\sqlite.pro ) && "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\bin\HostX86\x86\nmake.exe" -f Makefile

Microsoft (R) Program Maintenance Utility Version 14.32.31332.0
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\bin\HostX86\x86\nmake.exe" -f Makefile.Release

Microsoft (R) Program Maintenance Utility Version 14.32.31332.0
Copyright (C) Microsoft Corporation.  All rights reserved.


C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers>nmake sub-mysql

Microsoft (R) Program Maintenance Utility Version 14.32.31332.0
Copyright (C) Microsoft Corporation.  All rights reserved.

NMAKE: fatal error U1073: don't know how to make 'sub-mysql'
Stop.

C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers>   

配置文件错误提示

Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn't set.

解决方法
  1. 匹配VS版本并调整环境变量加载顺序
    当前使用的是VS2022开发者命令行,但Qt版本为msvc2019,版本不匹配会导致环境变量冲突。正确操作:

    • 打开Visual Studio 2019的x86开发者命令提示符(必须对应Qt编译器版本)
    • 执行C:\Qt\5.15.2\msvc2019\bin\qtenv2.bat加载Qt环境
    • 再进入sqldrivers目录执行后续命令
  2. 清理编译残留
    删除sqldrivers目录下所有生成文件(Makefile、obj文件夹、lib文件等),避免旧配置干扰新编译。

  3. 修正qmake命令
    执行qmake时指定sql-drivers.pro文件,确保参数正确传递:

    qmake "MYSQL_INCDIR=D:/Qt/Apps/connectors/mysql-connector-c-6.1.11-win32/include" "MYSQL_LIBDIR=D:/Qt/Apps/connectors/mysql-connector-c-6.1.11-win32/lib" sql-drivers.pro
    

    配置完成后检查Qt Sql Drivers下的MySql是否显示为yes,确认配置成功。

  4. 编译驱动
    配置成功后直接执行nmake,无需加sub-mysql参数。若只想编译MySQL驱动,可进入生成的mysql子目录,执行nmake和nmake install。

  5. 验证连接器兼容性
    确认mysql-connector-c是32位版本,若仍失败,可尝试更换为MySQL Connector/C++ 8.x的32位版本,确保与Qt msvc2019 32位ABI兼容。

内容的提问来源于stack exchange,提问作者Kyef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:36:18