Qt - 如何获取|编译Mysql驱动程序

时间:2011-06-26 11:04:19

标签: c++ mysql windows database qt

我正在尝试在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"

就是这样。你可以在里面找到dll     (Qt-安装路径)\ qt \ plugins \ sqldrivers

5 个答案:

答案 0 :(得分:12)

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

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

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

一旦构建成功,你将有一个很好的qsqlmysql.dll你必须复制到Qt目录中,你用来运行你的应用程序基本上类似{QT_DIR中的qt/plugins/sqldrivers

答案 1 :(得分:2)

使用MinGW32构建QT5.13 1.下载MySql C Connector 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. cd到qt源中的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驱动程序

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

  4. >

答案 2 :(得分:1)

可以在此处找到Qt5的更新教程:http://seppemagiels.com/blog/create-mysql-driver-qt5-windows

此外,我没有乱用程序文件目录,而是将lib和dll复制到工作文件夹并修改.pro文件以构建qtcreator。

    INCLUDEPATH+=include
    LIBS+=$$PWD/lib/libmysql.lib

答案 3 :(得分:0)

您可以从我的git repo https://github.com/Mashpy/Qt-MySQL-Driver-For-Windows

下载驱动程序

答案 4 :(得分:0)

准备: 首先必须在列表中安装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