系统环境:win7
软件:qt-sdk 4.7.3 D:/qt (这个里面没有安装mingw 之前安装过mingw)
mysql-5.1.4 F:/phpserver/mysql (记住安装include 和 lib)
mingw D:/program files (这个是单独安装的 没有默认qt 里面的mingw)
至于怎么配置qt 大家自己baidu ,google找吧 这个一大堆!
好了,言归正传 之前我 连接 mysql 一直出错,不是drivers not load 就是 提示 源文件错误 ,总之一直有问题,一直连接不上!
后来干脆直接重装了QT!
再次编译时首先提示的 qsql_mysql.h 中的 #include "mysql.h" 没有这个文件!
然后把 mysql 里面的 include 里面的文件拷贝到 D:/Qt/qt/src/sql/drivers/mysql 下面(给个可以找到这个文件的路径)
不然编译不通过!
然后开始编译 mysql 驱动~!
首先:
打开cmd, 进入到自己相应的qt/src/plugins/sqldrivers/mysql 目录下,这个下面有两个文件mysql.pro,一个mian.cpp!
我的目录为:D:/Qt/qt/src/plugins/sqldrivers/mysql
用文本编辑器打开该目录下的mysql.pro文件
在mysql.pro中加入:
INCLUDEPATH+="F:/phpserver/MySQL/include"
LIBS+="F:/phpserver/MySQL/lib/opt/libmysql.lib"
保存并退出(即你的mysql的include 路劲和 lib 下 opt 的 libmysql.lib 路径)
编译 这个文件
#qmake -o Makefile mysql.pro
提示3条警告信息,但没影响
#mingw32-make (这个网上有好几个编译命令 我的是用这个, 是用make);
然后你会发现 你的 qt 下这个 qt/plugins/sqldrivers 路劲下 多了四个文件
分别为 libqsqlmysql4.a, libqsqlmysqld4.a, qsqlmysql4.dll,qsqlmysqld4.dll
我的路径为 D:/qt/qt/plugins/sqldrivers 下
这样基本上就编译成功 ,可以使用 mysql 了 !~
最后安全起见再将 mysql下 bin 文件中libmysql.dll文件 拷贝到 system32 下面
然后测试:
新建一个qt gui application
然后把 main.cpp 文件更改
#include <QtGui/QApplication>
#include <QtSql/QtSql>
#include <QtLable>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel *label = new QLabel;
label->setWindowTitle("Qt Database");
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("数据库名");
db.setUserName("数据库登录用户名");
db.setPassword("数据库登录密码");
if (db.open()) {
label->setText("Connected to database!");
}
else {
label->setText("Connection fail!");
}
label->show();
return app.exec();
}
(网上随便找个 qt 连接mysql测试程序)
编译 运行
连接成功!
网上大多数的 连接教程都大同小异,但是有的说要把编译好的文件拷贝到你运行程序的目录下,同时也要拷贝libmysql.dll文件,
有的说是 要在 运行目录下 新建 一个二级目录 plugins/sqldrivers;
然后再在main 程序中加入此目录 即可!~~
不过之前都试过,对我的环境木有效果,如果我上述对你们木有效果,大家可以试试 其他的。。
配置就告一段落!~~
有问题在 讨论!~~
谢谢 各位了