windows Q5.4 编译MYSQL驱动

本文详细介绍了在Windows上使用Qt5.4编译MySQL驱动的步骤,包括设置环境变量、修改mysql.pro文件、解决编译过程中的库文件问题,以及编译完成后驱动文件的复制和测试,确保Qt能够正确连接MySQL数据库。


准备工作:

1> MYSQL的免安装包. mysql-5.6.24-win32

    下载地址: http://dev.mysql.com/downloads/mysql/5.6.html#downloads

   选择zip压缩包文件下载:

  

 将文件包解压到 D:/mysql-5.6.24-win32目录后,可以看到我们编译需要的 include目录和lib目录


2>安装完Qt5.4版本后,在开始菜单栏里选择 Qt 5.4 for Desktop (MinGW 4.9 32bit )终端



编译MYSQL驱动

1>.在 D:\Qt\Qt5.4.1\5.4\Src\qtbase\src\plugins\sqldrivers\mysql 目录下

用记事本打开mysql.pro文件添加内容

INCLUDEPATH += "D:\mysql-5.6.24-win32\include"
LIBS += "D:\mysql-5.6.24-win32\lib\libmysql.lib"

然后保存退出。


说明:在终端里填写环境变量后,编译时会出错。

qmake  INCLUDEPATH += "D:\mysql-5.6.24-win32\include" LIBS += "D:\mysql-5.6.24-win32\lib\libmysql.lib"  mysql.pro

 

2> 复制mysql库文件。

将D:\mysql-5.6.23-win32\lib目录下的libmysql.dll文件拷贝到D:\Qt\Qt5.4.1\Tools\mingw491_32\lib目录下。

原因:在编译过程中,出现找不到库文件libmysql

mingw32-make -f Makefile.Release all
mingw32-make[1]: Entering directory 'F:/Qt/Qt5.4.1/5.4/Src/qtbase/src/plugins/sqldrivers/mysql'
g++ -Wl,-s -shared -Wl,-subsystem,windows -Wl,--out-implib,F:\Qt\Qt5.4.1\5.4\Src\qtbase\plugins\sqld
rivers\libqsqlmysql.a -o ..\..\..\..\plugins\sqldrivers\qsqlmysql.dll .obj/release/main.o .obj/relea
se/qsql_mysql.o .obj/release/moc_qsql_mysql_p.o  -llibmysql C:\mysql\lib\libmysql.lib -LF:/Qt/Qt5.4.
1/5.4/mingw491_32/lib -lQt5Sql -lQt5Core .obj\release\qsqlmysql_resource_res.o
F:/Qt/Qt5.4.1/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/b
in/ld.exe: cannot find -llibmysql
collect2.exe: error: ld returned 1 exit status
Makefile.Release:81: recipe for target '..\..\..\..\plugins\sqldrivers\qsqlmysql.dll' failed
mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysql.dll] Error 1
mingw32-make[1]: Leaving directory 'F:/Qt/Qt5.4.1/5.4/Src/qtbase/src/plugins/sqldrivers/mysql'
makefile:38: recipe for target 'release-all' failed
mingw32-make: *** [release-all] Error 2


3>在打开的Qt5.4 for Desktop 终端里,

进入D:\Qt\Qt5.4.1\5.4\Src\qtbase\src\plugins\sqldrivers\mysql目录下

分别执行命令: qmake -o Makefile mysql.pro

                          mingw32-make 

然后等待编译完成后在目录D:\Qt\Qt5.4.1\5.4\Src\qtbase\plugins\sqldrivers里面

会生成MYSQL驱动的四个文件:

libsqlmysql.a   

libsqlmysqld.a

qsqlmysql.dll

qsqlmysqld.dll

将这四个文件拷贝到 D:\Qt\Qt5.4.1\5.4\mingw491_32\plugins\sqldrivers目录下。

这样就算驱动编译完全成功了!!


4> 代码测试





在Qt creator里创建控制台程序,填写如下测试程序

#include <QCoreApplication>
#include <QtSql/QSqlDatabase>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);


    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setDatabaseName("agc");
    db.setHostName("192.168.1.120");
    db.setPort(3306);
    db.setUserName("admin");
    db.setPassword("admin");

    if(!db.open()){
        qDebug()<<"connect mysql failed!";
    }else{
       qDebug()<<"connect mysql sucessfully!";
    }


    return a.exec();
}




如果运行后显: 

connect mysql failed!说明Qt找不到MYSQL的库文件。

这时需要将D:\mysql-5.6.24-win32\lib\目录下的mysql.dll文件拷贝到C:\windows\system32\目录下

或者D:\Qt\Qt5.4.1\5.4\mingw491_32\bin目录,下

再次运行测试,就可以正常通过.

祝你成功!

    


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值