Qt4.7.3(MinGW Opensource版)windows编译mysql驱动

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介:

 鉴于不少朋友索要这个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.  
  3. 得到makefile (注意libmysql.a这个大小写问题,否则会不成功)
  4.  
  5. make 
  6.  
  7. debug里出现了调试版本的了。 
  8.  
  9. make release 
  10.  
  11. release版本 

 

 

 

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

 

下面来测试下:

 


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

 



 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/672917,如需转载请自行联系原作者


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
4月前
|
监控 编译器 Windows
Qt5实现Windows平台串口通信
Qt5实现Windows平台串口通信
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
2181 56
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
1251 9
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
C语言 Android开发 C++
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
本文介绍了使用MTuner软件进行Qt MinGW编译程序的内存泄漏检测的方法,提供了MTuner的下载链接和测试代码示例,并通过将Debug程序拖入MTuner来定位内存泄漏问题。
461 4
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
|
Oracle 关系型数据库 MySQL
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
250 2
|
编译器 Windows
plugin cannot be loaded for module “QtQuick“ && Could not load the Qt platform plugin “windows“
本文讨论了在Qt应用程序中遇到的平台插件加载问题,包括具体的错误信息、解决方案和参考链接。问题表现为无法加载“QtQuick”模块的插件,并且无法找到“windows”平台插件。解决方案是修改环境变量`Qt5_DIR`以使用正确的Qt版本和编译器环境。
1233 1
|
关系型数据库 MySQL Linux
Navicat 连接 Windows、Linux系统下的MySQL 各种错误,修改密码。
使用Navicat连接Windows和Linux系统下的MySQL时可能遇到的四种错误及其解决方法,包括错误代码2003、1045和2013,以及如何修改MySQL密码。
1387 0
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
1595 0
|
关系型数据库 MySQL Linux
Windows 安装 MySQL 8.0 -- 输入3次 密码错误锁定账户
Windows 安装 MySQL 8.0 -- 输入3次 密码错误锁定账户
278 0

推荐镜像

更多