Windows平台下编译Qt的MySQL数据库驱动

       先吐个槽,弄了将近一天的时间才弄好,其实大概在一年之前弄个,不过当时没记录下来,导致现在又得再做一遍,可见博客是多么的重要啊!花了这么多时间主要是因为想从源码编译,大家都知道,编译一个Qt源码真心不容易啊,好久不能关电脑!!!好了,吐完了,说正事!

        最近最项目,选择了Qt和MySQL组合。之前一直在linux下做事,可惜这次要求环境是Windows,所以得重新搭建环境。首先安装Qt的开发环境,我直接选择的QtSDK,一个包安装到底就行;MySQL也是官网下载最新安装包安装的。两个部分单独测试过,都已经正常工作了!接下来就需要Qt操作MySQL了,这需要MySQL数据库驱动,QtSDK安装后只是自带了SQLite数据库的驱动,需要自己编译。我选择的编译工具是大名鼎鼎的MinGW,然后需要Qt源码包,我选择的版本是4.7.4。

       接下来就是编译了,感觉无从下手的时候最好就看看Qt的帮助文档,至于怎么使用Qt的帮助文档,可以看看上一篇博文,这里贴一下在帮助文档中搜索到的结果:

        这篇帮助文档里面非常详细的介绍了如何编译各种数据库的驱动,我们这里选择在Windows下编译MySQL数据库驱动。

         文档十分详细,基本都是步骤,我就翻译了,直接截图,大家一看就知道:

 

How to build the MySQL driver for MinGW users

The following steps have been used successfully for WinXP SP3. In this example, Qt 4.6.2 is shown.

  • Download the following components:
    • MinGW-5.1.6.exe
    • mingw-utils-0.3.tar.gz
    • Qt sources, e.g. qt-everywhere-opensource-src-4.6.2.zip
    • mysql-5.1.35-win32.msi
  • Install MinGW-5.1.6.exe in, e.g. C:\MinGW.
  • Extract mingw-utils-0.3.tar.gz into, e.g. C:\MinGW.
  • Add the path for MinGW-5.1.6.exe to your PATH variable, e.g. C:\MinGW\bin;
  • Extract the Qt sources, (qt-everywhere-opensource-src-4.6.2.zip), into, e.g. C:\Qt.
  • Add the path for the eventual Qt binary to your PATH variable, e.g. C:\Qt\4.6.2\bin;.
  • Install MySQL (mysql-5.1.35-win32.msi), customizing the components. Select only the headers and libraries. Install in, e.g. C:\MySQL\MySQL51.
  • Open the DOS prompt, go to C:\MySQL\MySQL51\lib\opt, and run the following commands:
    • reimp -d libmysql.lib
    • dlltool -k -d libmysql.def -l libmysql.a
  • Open the DOS prompt, go to C:\Qt\4.6.2 and run the following commands:
    • configure.exe -debug-and-release -platform win32-g++ -qt-sql-mysql -l mysql -I C:\MySQL\MySQL51\include -L C:\MySQL\MySQL51\lib\opt
    • mingw32-make sub-src

    This step takes a long time.

  • Open the DOS prompt, go to C:\Qt\4.6.2\src\plugins\sqldrivers\mysql and run the following command:
    • qmake "INCLUDEPATH+=C:\MySQL\MySQL51\include" "LIBS+=-L. mysql" mysql.pro
  • Now the following libraries are ready in C:\Qt\4.6.2\plugins\sqldrivers.
    • libqsqlmysql4.a
    • libqsqlmysqld4.a
    • qsqlmysql4.dll
    • qsqlmysqld4.dll

    To use the SDK and QtCreator directly, copy these libraries to your C:\Qt\...\qt\plugins\sqldrivers\, and copyC:\MySQL\MySQL51\lib\opt\libmysql.dll to your C:\Qt\...\qt\bin\.

         这里我贴一下自己编译完成后的文件,熟话说:有图有真相,呵呵!

          将生成的文件按照帮助文档说的,拷贝到相应的目录下;接下来我们在QtCreator里面写一个程序,测试一下我们的驱动是否可用:

          程序的功能是输出当前系统中Qt包含的数据库驱动;源码如下:

 
 
   
#include <QApplication>
#include <QSqlDatabase>
#include <QStringList>
#include <QDebug>

int main(int argc, char* argv[]) {
    QApplication app(argc, argv);

    qDebug() << "Available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug() << "\t" << driver;

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    qDebug() << "ODBC driver valid?" << db.isValid();
}

 程序输出结果如下:

         由上面输出我们可以看出:Qt自带的SQLite和我们自己编译的MySQL数据库的驱动都可以正常工作了,我们没有编译的ODBC数据库驱动就没有支持!

 

注意:

        为什么这么简单的东西我却花了将近一天的时间呢?这里说一下自己的思路和做法,避免大家走弯路,更让大家熟悉怎么编译Qt模块。

        最初我是直接编译Qt源码,没有利用已安装的Qt工具来模块化编译数据库驱动,这出现了两个问题:

         1、直接编译,花费很长时间才能编译完;若利用configure配置工具驱动一些模块后会编译报错,哎;

         2、这个时候指定MySQL头文件和库文件路劲比较纠结,可能是我对Windows不熟悉了,反正我觉得纠结。

         后来我才准备模块化编译的,这个确实比较简单,一会就弄完了,特别要注意上面要利用MinGW工具对MySQL库文件进行转换。

 

         好了,就到这吧!


  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
编译QtMySQL驱动源代码并在安卓上运行需要以下步骤: 1. 首先,下载并安装Qt开发环境。你可以从官方网站https://www.qt.io/下载最新版本的Qt。 2. 下载MySQL驱动源代码。你可以从MySQL官方网站https://dev.mysql.com/downloads/connector/c/下载MySQL驱动程序的源代码。 3. 解压MySQL驱动源代码并进入解压后的目录中。 4. 使用命令提示符或终端窗口进入Qt安装目录的"Tools"文件夹。根据你的操作系统,这个目录可能是“C:\Qt\Qt版本号\版本号\android_x86_64\bin”或“/opt/Qt/Qt版本号/版本号/android_x86_64/bin”。 5. 执行如下命令以设置Qt并进入Qt的交叉编译终端: ``` cmd /k <PathtoQt>\Qt版本号\版号\android_x86\bin\qtenv2.bat ``` 或 ``` . <PathtoQt>/Qt版本号/版号/android_x86_64/bin/qtcreator.sh ``` 6. 使用命令提示符或终端窗口,进入解压的MySQL驱动源代码目录中的"libmysql"文件夹。 7. 执行如下命令,使用Qt的qmake生成Makefile文件: ``` qmake ``` 8. 执行如下命令,编译MySQL驱动: ``` make ``` 9. 将生成的MySQL驱动安装到Qt的安装目录中。执行如下命令: ``` make install ``` 10. 在Qt项目中测试MySQL驱动是否可以正常使用。 请注意,编译和安装MySQL驱动程序需要一定的时间和计算资源。此外,确保安装了适当版本的Qt和与MySQL驱动程序相匹配的MySQL库。完成以上步骤后,你将能够在安卓设备上使用MySQL数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值