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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

 鉴于不少朋友索要这个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操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
WHQL微软驱动签名方案,让驱动程序在Windows系统流畅运行
WHQL认证(Windows徽标认证)是微软设立的严格测试标准,旨在确保驱动程序的兼容性、稳定性和互通性。本文介绍了三种WHQL微软驱动签名方案:单系统签名、多系统签名和硬件兼容性测试方案,分别满足不同开发商的需求。通过WHQL认证,不仅能消除Windows安装警告,提升用户体验,还能获得“Designed for Windows”徽标授权,入列全球Windows Catalog及HCL产品表,提升品牌权威性和采购优先权。此外,访问微软OCA可获取错误反馈,助力产品质量改进。选择合适的签名方案,让驱动在Windows系统中流畅运行!
Windows 7纯净版重装教程|附微软原版镜像下载+驱动安装避坑技巧
本文详细介绍如何安全、高效地重装电脑系统,解决蓝屏、崩溃等问题。基于10年经验,涵盖从官方镜像获取、启动盘制作、数据备份到系统部署的全流程,并针对老旧机型优化。提供驱动一键安装工具和系统激活指南,确保无后门风险。文中还列出常见问题解决方案及操作禁忌,帮助用户顺利完成系统重装,让电脑重获新生。建议收藏并转发给有需要的朋友,欢迎留言咨询疑难问题。
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
481 9
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
Navicat 连接 Windows、Linux系统下的MySQL 各种错误,修改密码。
使用Navicat连接Windows和Linux系统下的MySQL时可能遇到的四种错误及其解决方法,包括错误代码2003、1045和2013,以及如何修改MySQL密码。
705 0
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
107 2
|
7月前
|
C++
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
本文介绍了如何编译整合VTK 9.2、DICOM 0.8、DCMTK 3.6.7和Qt 6.2的步骤,包括安装Qt、CMake配置以及确认相关路径和版本设置。
149 1
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
330 1
VS2022+Qt5.14.2成功编译MITK2022.10
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
135 0
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等