Qt4.7.3(MinGW Opensource版)windows编译mysql驱动
2011-09-24 14:19
645 查看
鉴于不少朋友索要这个mysql驱动,所以有了此文,授人鱼不如受之以渔。
网上此类帖子文章不少,但大家可能还是碰到这样那样的问题,今天我把我的编译经历尽量详细写出来,以便碰到同样问题时能够减少不必要的弯路。
首先说下我的环境:
首先注意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放一起就行。
over了,出来这2个东西了。
好了需要的kulibmysql.a准备好了
下面开始编译之旅:
来到qt mysql驱动的源程序目录,有个cpp文件和一个qt项目文件。
cd %QTDIR%/src/plugins/sqldrivers/mysql
当前目录转到源程序目录。
把这4个文件copy到你的qt驱动目录吧
下面来测试下:
网上此类帖子文章不少,但大家可能还是碰到这样那样的问题,今天我把我的编译经历尽量详细写出来,以便碰到同样问题时能够减少不必要的弯路。
首先说下我的环境:
系统: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的目录 |
因为这里我们使用MinGW来编译驱动,mysql提供的这个libmysql.lib我们还不能直接用(如果用微软的编译器就不用这样了),我们需要用个工具转成*.a来用。
工具下载:
http://www.qtcn.org/download/mingw-utils-0.3.tar.gz
解压我们只用remip.exe这个东西,把他放在你的mingw/bin和那些make.exe放一起就行。
cd D:\Program Files\MySQL\MySQL Server 5.1\lib\opt 转到库目录 reimp -d libmysql.lib (生成 libmysql.def文件) dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)
over了,出来这2个东西了。
好了需要的kulibmysql.a准备好了
下面开始编译之旅:
来到qt mysql驱动的源程序目录,有个cpp文件和一个qt项目文件。
cd %QTDIR%/src/plugins/sqldrivers/mysql
当前目录转到源程序目录。
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 得到makefile (注意libmysql.a这个大小写问题,否则会不成功) make debug里出现了调试版本的了。 make release release版本
把这4个文件copy到你的qt驱动目录吧
下面来测试下:
头文件: #ifndef PRODUCTVIEWERDIALOG_H #define PRODUCTVIEWERDIALOG_H #include <QDialog> #include <QSqlDatabase> #include "ui_productviewer.h" class ProductViewerDialog:public QDialog,public Ui::products { Q_OBJECT public: ProductViewerDialog(QWidget *parent=0); private slots: void on_queryButton_clicked(); private: QSqlDatabase db; }; #endif // PRODUCTVIEWERDIALOG_H 源文件: #include <QtGui> #include <QSqlTableModel> #include "productviewerdialog.h" ProductViewerDialog::ProductViewerDialog(QWidget *parent):QDialog(parent) { setupUi(this); this->db=QSqlDatabase::addDatabase("QMYSQL"); this->db.setHostName("127.0.0.1"); this->db.setUserName("root"); this->db.setPassword("123456"); this->db.setDatabaseName("nwind"); } //点击查询 void ProductViewerDialog::on_queryButton_clicked() { QSqlTableModel *mode = new QSqlTableModel(this->tableView,this->db); if(this->db.open()) { mode->setTable("nwproducts"); this->tableView->setModel(mode); mode->select(); } else { QMessageBox::warning(this,tr("error"),tr("Database cannot be connected.")); } } 程序入口: #include <QtGui> #include "productviewerdialog.h" //主函数 int main(int argc,char** argv){ QApplication app(argc, argv); ProductViewerDialog dlg; dlg.show(); return app.exec(); }
相关文章推荐
- Windows下编译Qt的Mysql驱动
- Windows下Qt编译MySQL驱动
- Windows下编译Qt的Mysql驱动(详细测试可用)
- Windows下编译Qt的Mysql驱动(详细测试可用)
- 转:eclipse+mingw+qt编译MySQL驱动的步骤
- windows下编译qt的mysql驱动
- QT 4.7.3 编译mysql驱动
- qt4.7.3编译MYsql驱动
- Qt环境(MinGW, VS2008)下编译MySQL驱动
- windows下编译qt的mysql驱动
- Qt环境(MinGW, VS2008)下编译MySQL驱动
- qt编译mysql驱动-------windows平台和linux平台
- windows下Qt编译MySQL驱动
- QT Mysql 驱动编译过程(windows下)
- Windows下编译Qt的Mysql驱动
- QT在windows下编译mysql驱动
- Qt 5.9.1 (MinGW) 编译MySQL驱动的步骤
- Windows下编译Qt的Mysql驱动
- windows操作系统下:QT编译mysql驱动文件问题总结
- windows下Qt5.6.0 编译Mysql驱动,并使用。