Qt - 如何获得|编译Mysql驱动
Posted
技术标签:
【中文标题】Qt - 如何获得|编译Mysql驱动【英文标题】:Qt - How to get|compile Mysql driver 【发布时间】: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 【参考方案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.
构建插件
打开 MinGW CMD(Windows -> 开始菜单 -> 程序 -> Qt 5.13.1 -> 5.13.1-> MinGW 7.3.0(32位)-> Qt 5.13.1(MinGW 7.3.0 32位))
qt 源码中 cd 到 sqldrivers 路径
cd D:\\QT\\Qt5.13.1\\5.13.1\\Src\\qtbase\\src\\plugins\\sqldrivers
在此处运行 qmake。 qmake sqldrivers.pro
(创建 qtsqldrivers-config.pri)
cd 到 mysql。
cd D:\\QT\\Qt5.13.1\\5.13.1\\Src\\qtbase\\src\\plugins\\sqldrivers\\mysql
-
在此处运行 qmake。 qmake mysql.pro
将插件添加到列表中
一旦成功构建,您将在其中找到 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
构建错误?
库“mysql”未定义。
在文件 cd
D:\QT\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
点赞QMAKE_USE += mysql
一行
添加库路径和包含路径。
将以下内容添加到 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'
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
【讨论】:
以上是关于Qt - 如何获得|编译Mysql驱动的主要内容,如果未能解决你的问题,请参考以下文章
QTMysqlMySQL安装及QT连接MySQL驱动编译操作步骤
编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)