Qt 4.7.3(MingW Opensource)windows编译mysql驱动

Qt4.7.3(MinGW Opensource版)windows编译mysql驱动                2011-09-24 14:19:15

鉴于不少朋友索要这个mysql驱动,所以有了此文,授人鱼不如受之以渔。

网上此类帖子文章不少,但大家可能还是碰到这样那样的问题,今天我把我的编译经历尽量详细写出来,以便碰到同样问题时能够减少不必要的弯路。

首先说下我的环境:

系统:windows xp sp3

QT : (Qt by Nokia v4.7.3 (MinGW OpenSource))

Mysql: 5.1社区版

MinGW用的QtCreator 2.2.1里带的mingw

PATH:

确保有D:\Qt\4.7.3\bin用的qmake.exe

C:\Qt\qtcreator-2.2.1\mingw\bin(mingw32,里面有gcc,g++,make工具和编译链接工具,离不了,呵呵)

d:\Program Files\MySQL\MySQL Server 5.1\bin 这下面有mysql动态库libmySQL.dll

定义了个环境变量QTDIR值D:\Qt\4.7.3表示qt的目录

首先注意mysql安装时不要用经典安装,选择完全安装或者自定义把头文件和库勾选上,这样安装后会有for c/c++的头文件和库目录:

因为这里我们使用MinGW来编译驱动,mysql提供的这个libmysql.lib我们还不能直接用(如果用微软的编译器就不用这样了),我们需要用个工具转成*.a来用。

工具下载:

http://www.qtcn.org/download/mingw-utils-0.3.tar.gz

解压我们只用remip.exe这个东西,把他放在你的mingw/bin和那些make.exe放一起就行。

  
  
  1. cd D:\Program Files\MySQL\MySQL Server 5.1\lib\opt
  2. 转到库目录
  3. reimp -d libmysql.lib (生成 libmysql.def文件)
  4. dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)

over了,出来这2个东西了。

好了需要的kulibmysql.a准备好了

下面开始编译之旅:

来到qt mysql驱动的源程序目录,有个cpp文件和一个qt项目文件。

cd %QTDIR%/src/plugins/sqldrivers/mysql

当前目录转到源程序目录。

  
  
  1. qmake -o Makefile "INCLUDEPATH+=D:/Progra~1/MySQL/MySQLS~1.1/include" "LIBS+=D:/Progra~1/MySQL/MySQLS~1.1/LIB/OPT/libmysql.a" mysql.pro
  2. 得到makefile (注意libmysql.a这个大小写问题,否则会不成功)
  3. make
  4. debug里出现了调试版本的了。
  5. make release
  6. release版本

把这4个文件copy到你的qt驱动目录吧

下面来测试下:

  
  
  1. 头文件:
  2. #ifndef PRODUCTVIEWERDIALOG_H
  3. #define PRODUCTVIEWERDIALOG_H
  4. #include <QDialog>
  5. #include <QSqlDatabase>
  6. #include "ui_productviewer.h"
  7. class ProductViewerDialog:public QDialog,public Ui::products
  8. {
  9. Q_OBJECT
  10. public:
  11. ProductViewerDialog(QWidget *parent=0);
  12. private slots:
  13. void on_queryButton_clicked();
  14. private:
  15. QSqlDatabase db;
  16. };
  17. #endif // PRODUCTVIEWERDIALOG_H
  18. 源文件:
  19. #include <QtGui>
  20. #include <QSqlTableModel>
  21. #include "productviewerdialog.h"
  22. ProductViewerDialog::ProductViewerDialog(QWidget *parent):QDialog(parent)
  23. {
  24. setupUi(this);
  25. this->db=QSqlDatabase::addDatabase("QMYSQL");
  26. this->db.setHostName("127.0.0.1");
  27. this->db.setUserName("root");
  28. this->db.setPassword("123456");
  29. this->db.setDatabaseName("nwind");
  30. }
  31. //点击查询
  32. void ProductViewerDialog::on_queryButton_clicked()
  33. {
  34. QSqlTableModel *mode = new QSqlTableModel(this->tableView,this->db);
  35. if(this->db.open())
  36. {
  37. mode->setTable("nwproducts");
  38. this->tableView->setModel(mode);
  39. mode->select();
  40. }
  41. else
  42. {
  43. QMessageBox::warning(this,tr("error"),tr("Database cannot be connected."));
  44. }
  45. }
  46. 程序入口:
  47. #include <QtGui>
  48. #include "productviewerdialog.h"
  49. //主函数
  50. int main(int argc,char** argv){
  51. QApplication app(argc, argv);
  52. ProductViewerDialog dlg;
  53. dlg.show();
  54. return app.exec();
  55. }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值