【问题标题】:Qt - How to get|compile Mysql driverQt - 如何获得|编译Mysql驱动
【发布时间】:2011-06-26 11:04:18
【问题描述】:

我正在尝试在 Qt 中制作一个依赖于 MySql 的应用程序。一段时间后,我知道我的共享构建没有 MySql 驱动程序(默认情况下)。任何人都可以说如何获取|编译它(共享和静态)。

注意:我在 Windows 平台上使用的是 Qt-4.7.2

编辑: 感谢“vrince”。这是他展示的方式 => 我做了。

 1)Open qt-command prompt 

 2)Goto (Qt's installation path)\qt\src\plugins\sqldrivers\mysql
   in my case:
   D:\TempInstallationFolder\Qt\dynamic-New\qt\src\plugins\sqldrivers\mysql

 3)qmake

 4)make 
   or
   mingw32-make (provided your PATH variable contains "(Qt installation path)\mingw\bin")

   ("make" should work if you didn't mess up with path variables. It in turn
    invokes mingw32-make. I messed up this a little bit. So I invoked 
    mingw32-make directly.)

 5)In the above  command you have to indicate the mysql's "lib" path, 
   and "include" path through the compile flag options. Or Add those lines
   in the pro file like below

   INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 5.1\include"
   LIBS += -L"C:\Program Files\MySQL\MySQL Server 5.1\lib\opt"

就是这样。您可以在 (Qt-安装路径)\qt\plugins\sqldrivers

【问题讨论】:

  • 我按照上面的@Kiran Thilak 说明进行操作。运行后 C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql>qmake mysql.pro 还需要运行如下命令:mingw32-make install

标签: c++ mysql windows database qt


【解决方案1】:

如果您计划重建链接到 MySQL 的 Qt,您现在可以停止,您不必这样做! SQL 驱动程序是插件(根据定义在运行时动态加载),可以独立编译。

在 Qt 源代码树中找到驱动程序源,例如 qt/src/plugins/sqldrivers/mysql,然后构建它。这里的游戏是提供正确的 MySQL 开发头文件和库(客户端),以便构建驱动程序! (请注意,如果您是一个 Windows,即使您运行的是 64 位操作系统,也可能需要 32 位版本的 MySQL 客户端)。

你可以通过qmake命令提供MySQL路径,参考Anton给出的文章,我个人复制并更改.pro文件以匹配我的安装......如果需要,以后更容易重建。

一旦构建成功,您将拥有一个不错的qsqlmysql.dll,您必须将其复制到用于运行应用程序的Qt 目录中,基本上类似于$QT_DIR 中的qt/plugins/sqldrivers

【讨论】:

    【解决方案2】:

    使用 MinGW32 构建 QT5.13 1. 下载 MySql C 连接器 v6.1。

    >   Download the MySql Installer from:
    >   <https://dev.mysql.com/downloads/installer/>
    >   Install C Connector 6.1 (Note the location we will need it later)
    

    2。准备好 QT 源代码

    >    To build a plugin for QT u need to get its source. You can install it from Maintenance Tool or manually get it from github repository.
    
    1. 构建插件

      1. 打开 MinGW CMD(Windows -> 开始菜单 -> 程序 -> Qt 5.13.1 -> 5.13.1-> MinGW 7.3.0(32位)-> Qt 5.13.1(MinGW 7.3.0 32位))

      2. qt 源码中 cd 到 sqldrivers 路径

      cd D:\\QT\\Qt5.13.1\\5.13.1\\Src\\qtbase\\src\\plugins\\sqldrivers
      
      1. 在此处运行 qmake。 qmake sqldrivers.pro(创建 qtsqldrivers-config.pri)

      2. cd 到 mysql。

      cd D:\\QT\\Qt5.13.1\\5.13.1\\Src\\qtbase\\src\\plugins\\sqldrivers\\mysql
      
      1. 在此处运行 qmake。 qmake mysql.pro
    2. 将插件添加到列表中

      一旦成功构建,您将在其中找到 qsqlmysql.dll 和 qsqlmysqld.dll 以下位置 D:\QT\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers

      复制 qsqlmysql.dll 和 qsqlmysqld.dll 并将它们放在编译器的 插件目录 D:\QT\Qt5.13.1\5.13.1\mingw73_32\plugins\sqldrivers



    构建错误?

    1. 库“mysql”未定义。

      在文件 cd D:\QT\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro

      点赞QMAKE_USE += mysql一行

    2. 添加库路径和包含路径。

      将以下内容添加到 mysql.pro 的末尾

      LIBS += -L'C:/Program Files (x86)/MySQL/MySQL Connector C 6.1/lib/'
      -llibmysql
      
      INCLUDEPATH += 'C:/Program Files (x86)/MySQL/MySQL Connector C 6.1/include'
      
      DEPENDPATH += 'C:/Program Files (x86)/MySQL/MySQL Connector C 6.1/include'
      
    3. QSqlDatabase: 未加载 QMYSQL 驱动程序

      将 .dll 文件从 C:/Program Files (x86)/MySQL/MySQL Connector C 6.1/lib 添加到 D:\QT\Qt5.13.1\5.13.1\mingw73_32\bin

    【讨论】:

      【解决方案3】:

      准备: 首先mingw32版本必须安装列表如下

      • MariaDB 连接器 32 位 (这很重要)
      • Mingw32 已安装

      构建:

      • 打开mingw32-make
      • 转到“C:\Qt\Qt5.12.9\5.12.9\src\qtbase\src\plugins\sqldrivers”(在 我的云端硬盘)
      • 在mingw32终端>qmake sqldrivers.pro
      • 在那之后cd mysql
      • 在mingw32终端>qmake "INCLUDEPATH+=D:\\MariaDB\\ConnectorC\\include" "LIBS+=D:\\MariaDB\\ConnectorC\\lib\\libmariadb.lib" mysql.pro

      如果您遇到“mysql”等错误,请更改 mysql.pro 文件,如下所示

      TARGET = qsqlmysql
      
      HEADERS += $$PWD/qsql_mysql_p.h
      SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
      #QMAKE_USE += mysql
      INCLUDEPATH +='D://MariaDB//include//mysql'(Check files if there isn't)
      DEPENDPATH += 'D://MariaDB//include//mysql'
      LIBS += -L'D://MariaDB//lib//libmysql.lib' 
      -llibmysql
      
      OTHER_FILES += mysql.json
      
      PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
      include(../qsqldriverbase.pri)
      
      • 然后在 mingw32 终端中再次制作 > qmake "INCLUDEPATH+=D:\\MariaDB\\ConnectorC\\include" "LIBS+=D:\\MariaDB\\ConnectorC\\lib\\libmariadb.lib" mysql.pro

      【讨论】:

        猜你喜欢
        • 2013-07-13
        • 2018-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 2022-06-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多