准备工作:
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目录,下
再次运行测试,就可以正常通过.
祝你成功!

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

3067

被折叠的 条评论
为什么被折叠?



