编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)
第一步
1、准备好Mysql数据库安装文件,Qt5.0完整的离线安装包,以及Qt5.0的完整的源代码。安装好程序,假设Mysql的安装路径为:C:\MySQL5.5,Qt5.0的安装路径:C:\Qt\Qt5.0.0-rc2\5.0.0-rc2,而Qt5.0的解压路径为:C:\Qt\qt-5.0.1-src。
注意事项:(1)安装mysql数据库的时候,网上很多教程说要选择自定义安装,并把lib和include这个选项选上。其实这个并不重要。因为我机器上很久前装mysql时选的是typical安装的,在安装目录下仍然可以找到lib和include这两个文件夹。安装方式并不重要。(2)Qt5.0是Qt的最新版本,在网上找到的编译方法都是基于Qt4.x的。我这里下载的是qt-windows-opensource-5.0.0-rc2-msvc2010_32-x86-offline.exe。这个安装包使用的是VC编译环境。因此,接下来的编译工作都是使用VS编译工具来编译的。(3)为什么要下载Qt5.0的源代码(qt-everywhere-opensource-src-5.0.1.zip)?因为我们要编译Qt连接mysql的驱动程序,需要使用一个mysql.pro文件。这个文件就在Qt5.0源代码中。其路径为(源码包的解压路径):C:\Qt\qt-5.0.1-src\qtbase\src\plugins\sqldrivers\mysql。具体的使用方式,我们在后面说明。
2、准备编译工作。选择开始->程序->Qt5.0.0-r2->5.0.0->MSVC2010->Qt5.0.0 for desktop(MSVC2010) prompt。我们在这个环境下使用qmake来生成编译程序的makefile文件。为什么要使用这个环境?因为,这个命令提示符已经为我们设置好了Qt库的环境,也即可以直接使用Qt库相关的工具。
第二步
(1)切换工作目录到:C:\Qt\qt-5.0.1-src\qtbase\src\plugins\sqldrivers\mysql。可以看到如下的几个文件存在:
其中,mysql.pro就是所要的文件。所以的编译工作都是从这个文件开始。
(2)使用qmake生成makefile自动编译。注意大小写不能错。其中,include和Lib就是上面说的Mysql安装目录下的两个文件夹。如下图所示:
(3)如果一切顺利,将在当前目录生成几个makefile文件和两个文件夹。如下图:
(4)接下来是重要的一部。如果我们直接在当前窗口输入make进行编译工作,那么很可能会出错,如:
更改数不胜数。这个时候,我们可以换另外一种方法,用VS2010的命令行环境来进行编译工作,在开始菜单中选择vs2010的一个命令行环境,切换到当前的工作目录下,执行nmake命令:
果然,出错了!错误显示缺少某个头文件。实际上,我们去mysql的安装目录include文件夹下查看,明显是可以找到这样一个头文件的。那么,怎么办呢?可以在命令行中用/I指示搜索路径。但是我们还是用最笨最简单的方法。直接将mysql安装目录下的include文件夹拷贝到Qt5.0的安装路径下。按照出错的提示,具体路径为:C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtSql。(这里注意,不是Qt5.0源码的路径哦,而是Qt5.0的安装路径。)如果一切顺利,我们就会得到几个lib文件和dll文件。文件位于:C:\Qt\qt-5.0.1-src\qtbase\plugins\sqldrivers。这个文件夹下的文件都是编译生成的新文件。我们将该目录下的qsqlmysql.dll和qsqlmysqld.dll拷贝到C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\plugins\sqldrivers目录下即可。配置工作至此完成。
第三步
连接。使用qt creator新建一个qt console项目,示例代码如下:

1 #include <QCoreApplication>
2 #include <QtSql/QSqlDatabase>
3 #include <QtSql/QSqlQuery>
4 #include <QDebug>
5
6 int main(int argc, char *argv[])
7 {
8 QCoreApplication a(argc, argv);
9
10 QSqlDatabase con = QSqlDatabase::addDatabase("QMYSQL");
11 con.setHostName("localhost");
12 con.setDatabaseName("kxdl");
13 con.setPort(3306);
14 con.setUserName("root");
15 con.setPassword("root");
16 bool ret = con.open();
17 if(ret)
18 {
19 qDebug()<<"true"<<endl;
20 ret = false;
21 QSqlQuery qsql(con);
22 ret = qsql.exec("SELECT * FROM userInfo COUNT(*)");
23 if(ret = true)
24 {
25 qDebug()<<"true"<<endl;
26 }
27 else
28 {
29 qDebug()<<"false"<<endl;
30 }
31 }
32 return a.exec();
33 }

输出结果:
至此,编译工作自此成功结束。
http://www.cnblogs.com/csuftzzk/archive/2013/05/04/3060212.html
编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)的更多相关文章
- 【Qt】Qt5.12连接MySQl5.7(亲自测试成功)
目录 00. 目录 01. Qt5.12连接MySQL5.7测试代码 02. Qt5.12连接MySQL5.7问题描述 03. 解决办法 04. 结果测试 05. 打赏 00. 目录 01. Qt5. ...
- Yii2.0连接多个数据库
Yii2.0连接多个数据库 一个项目根据需要会要求连接多个数据库,这里记录下实际项目中的操作流程.包括对数据库连接的配置以及如何生成模型文件,在控制器中加以运用. 一.配置 打开数据库配置文件c ...
- python3.4连接mysql5.7数据库增删改查
#!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "blzhu" """ pyt ...
- 手动升级11.2.0.1的rac数据库到11.2.0.4
① 关闭两个节点上的数据库 crsctl stop resource ora.ORA11G.db ② 命令行单节点启动数据库, 注意这里的SQLPLUS 一定是升级后的软件地址 sqlplus / a ...
- YII2.0安装教程,数据库配置前后台 [ 2.0 版本 ]
1.首先下载yii-advanced-app-2.0.6.tgz 2.解压到D:\wamp\www\yii2目录下面将目录advanced下所有文件剪切到 D:\wamp\www\yii2 3.打开c ...
- mysql5.7数据库与5.7之前版本比较
数据库初始化方式变更 <5.7 版本 mysql_install_db >5.7 版本 bin/mysqld --initialize --user =mysql --basedir=/u ...
- 数据库TINYINT类型 参数0 mybatis取不到值
tinyint存储0的奇怪问题 数据库TINYINT类型 参数0 mybatis取不到值 postman 传参 audited =0 audited =1 两种情况 ...
- WIN7+Qt5.2.0连接oracle数据库的oci驱动的编译
一.前提安装 1.需要安装QT5.2.0,本介绍安装的是qt-windows-opensource-5.2.0-mingw48_opengl-x86-offline.exe: 本文安装目录:c:\Qt ...
- Linux系统下 解决Qt5无法连接MySQL数据库的方法
Linux平台下解决Qt5连接mysql数据库的问题:输入sudo apt-get install libqt5sql5-mysql解决,这种方法只能解决Qt是用sudo apt-get instal ...
随机推荐
- js css 实现简单的计算器
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【17.76%】【codeforces round 382C】Tennis Championship
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- css3中的制作动画小总结
系列教程 CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation: Transform 在CSS3中transform主要包括以下几种:旋转rotate. ...
- matplotlib:path effects
import matplotlib.pyplot as plt, matplotlib.patheffects as path_effects 1. normal fig = plt.figure(f ...
- Linux下编译,要下载tar.xz,而不要下载zip,因为换行的编码不一样,对.h.cpp没有影响,但是对脚本有影响 good
原因是 在win下编辑的时候,换行结尾是\n\r , 而在linux下 是\n,所以才会有 多出来的\r但是这个我是直接下载的官网文件解压的,没有动过啊. 破案了. linux下编译要下 .tar.x ...
- Efficient store queue architecture
One embodiment of the present invention provides a store queue that applies the stores to a memory s ...
- 国内大型的内部 C# 编程规范
C#编程规范 改动记录 Ver. No 发版日期 编制人 批准人 改动的说明 目 录 1 1.1 1.2 2 2.1 2.1.1 Pascal 大写和小写 2.1.2 Came ...
- Python 绘图利器 —— ggplot
安装: 命令行:pip install ggplot 1. 杂项 NameError: name 'ggsave' is not defined. Python ggplot- ggsave func ...
- .net core service && angular项目 iis发布
项目结构 .net core 后端服务站点 angular 前端页面站点 项目模板来自于abp或者52abp .net core 后端服务站点发布到IIS 发布报错 .Net Core使用IIS部署出 ...
- Swift 中使用 SwiftyJSON 制作一个比特币价格 APP
Swift 中处理 JSON 数据有很多种方式,可以使用原生的 NSJSONSerialization,也可以使用很多第三方库.原生的 NSJSONSerialization 方式这篇文章中介绍过.这 ...