我正在尝试在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
答案 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.
建筑插件
打开MinGW CMD(Windows->开始菜单->程序-> Qt 5.13.1-> 5.13.1-> MinGW 7.3.0(32位)-> Qt 5.13.1(MinGW 7.3.0 32位))
cd到qt源中的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
将插件添加到列表中
一旦成功构建,您将在以下位置找到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驱动程序
将C./Program Files(x86)/ MySQL / MySQL Connector C 6.1 / lib中的.dll文件添加到D:\ QT \ Qt5.13.1 \ 5.13.1 \ mingw73_32 \ bin
答案 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版本
内部版本:
qmake sqldrivers.pro
cd mysql
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)
qmake "INCLUDEPATH+=D:\\MariaDB\\ConnectorC\\include" "LIBS+=D:\\MariaDB\\ConnectorC\\lib\\libmariadb.lib" mysql.pro