Windows下QT MySQL驱动编译

在Windows环境中使用Qt进行关于MySQL数据库的操作时,会出现如下问题:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC

这是由于MySQL数据库的驱动程序未在Qt下编译造成的(确切的说是未使用mingw32进行编译),解决的方法如下:

1. 自定义安装MySQL,注意安装目录不要有空格,我的目录在

C:\MySQL\MySQL Server 5.6

虽然二级目录有空格,但是没有影响。

2. 打开Qt Command Prompt,切换到目录:

cd %QTDIR%\src\plugins\sqldrivers\mysql 

3. 执行如下命令:

qmake "INCLUDEPATH+=C:\MySQL\MySQL Server 5.6\include" "LIBS+=C:\MySQL\MySQL Server 5.6\lib\libmysql.lib" mysql.pro

注意上述目录与安装的MySQL版本有关,本人使用的版本为:

mysql-installer-community-5.6.26.0.msi

4. 执行

mingw32-make

此处可能出现如下错误:

In file included from main.cpp:44:
../../../sql/drivers/mysql/qsql_mysql.h:52:19: error: mysql.h: No such file or directory
In file included from main.cpp:44:
../../../sql/drivers/mysql/qsql_mysql.h:108: error: expected ‘)‘ before ‘*‘ token
mingw32-make[1]: *** [tmp/obj/debug_shared/main.o] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/2010.02.1/qt/src/plugins/sqldrivers/mysql‘
mingw32-make: *** [debug-all] Error 2

这是由于未包含MySQL库文件造成的,在mysql.pro文件中添加如下代码:

INCLUDEPATH += "C:/MySQL/MySQL Server 5.6/include"
LIBS += "C:/MySQL/MySQL Server 5.6/lib/libmysql.lib"

重复步骤4.即可生成以下4个文件:

qsqlmysql4.dll
libqsqlmysql4.a
qsqlmysqld4.dll
libqsqlmysqld4.a

5. 将C:\MySQL\MySQL Server 5.6\lib\中的libmysql.lib拷贝到C:\Qt\2010.05\mingw\bin中。

//正文完

参考:

1. http://blog.csdn.net/wang_xuehen/article/details/7483133

2. http://blog.csdn.net/wang19870102/article/details/39318225

3. http://www.cppblog.com/biao/archive/2011/10/29/159296.html

时间: 12-07

Windows下QT MySQL驱动编译的相关文章

在Windows下使用MinGW静态编译Assimp

使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要讲解如何在Windows下使用MinGW静态编译Assimp. Assimp是目前比较全的3D格式解析库了,熟悉3D游戏开发的同行都知道,3D的格式非常混乱,各种3D格式在不同场合都有他们特定的应用,游戏引擎只能够解析少部分3D格式,更多实用的格式来自游戏公司自定义的格式.而在开源领域,Assimp算是比较全的3D格式导入库了.它对3D格式理解深入,很适合整合至3D图形引擎中,让你们

MongoDB在MFC下使用C++驱动编译错误的解决

.post p{text-indent: 2em;} 今天使用MongoDB的C++驱动,在编译连接的时候一直出现错误,显示的string_data.h下93行max宏的问题,可视其本身并不是调用max宏,而是调用 std::numeric_limits<size_t>::max 这样就是产生错误,通过搜索发现解决方法(参考网址:http://blog.chinaunix.net/uid-17102734-id-2830143.html),将该函数用括号括起来,避免windows定义的混淆,具

windows下备份mysql方案

总体思想 定时任务调用备份脚本 1.定时任务, 自行研究 2.脚本 c:\mysql_bak\bin\mysqldump.exe -ugbds -pxxxx gbds --hex-blob>c:\mysql_bak\sql\gbds_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.sql 备注: 对于mysqldump.exe可以使用快捷方式复制到使用目录 windows下备份mysql方案,布布扣,bubu

Windows下Caffe在GPU编译过程

Windows下Caffe在GPU编译过程 GeForce8800 GTS512: cc=1.1 CUDA6.5 问题一: src/caffe/layers/conv_layer.cu(20): error : too few arguments in function call Error in in conv_layer.cu :forward_gpu_gemm needs the argument skip_im2col #1962 解决: https://github.com/BVLC/

Windows下安装mysql实践

安装mysql-essential-5.1.36-win32.msi (2009年的),懒得下载新的了. 安装时,先前安装的phpedit构成干扰,其license过期了,也找不到了.卸载phpedit,重新安装,结果启动mysql服务,出现1067错误. 解决这个问题,网上有一些指导.进入D:\Develop\MySQL\MySQL Server 5.1,拷贝my-small.ini,重命名为my.ini. 于是解决这个问题.中间曾把my.ini拷贝到c:\windows下. Linux下my

解决Windows下安装MySQL 5.5,运行MySQLInstanceConfig.exe没有响应的方法

我在Windows Server 2003虚拟机上安装MySQL5.5(社区版).这个虚拟机之前被别人安装过MySQL5.5和MySQL5.0,但是忘了root密码,所以重装.不出意外的遇到了配置MySQL Instance时MySQLInstanceConfig.exe没有响应的问题.(我记得以前遇到这个问题,就果断换了MySQL5.0,绕开却并未解决) 试了很多方法,有说需要以Administrator身份运行(据说WIN7上安装会是这个问题,而我用的是Windows Server 2003

windows下(Mysql)Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password:YES) 解决方案

解决方案: 1.在my.ini文件的最后添加一行“skip-grant-tables”,保存并关闭文件. 2.重启MySQL服务. 3.在命令行中输入“mysql -uroot -p”(不输入密码),回车即可进入数据库. 4.执行,“use mysql;”使用mysql数据库. 5.执行,“update user set password=PASSWORD("自己设置的新密码") where user='root';”(修改root的密码) 6.打开my.ini文件,删除“skip-g

windows下的mysql安装

windows下的mysql安装分为采用安装文件安装(用的是windows的install程序来做安装),还有一种方式是通过windows中注册一个服务(也可以不注册服务,你每次在windows系统的dos窗口下通过mysqld,mysqldadmin等来做启动和关闭.所以注册了服务相当于把这些exe的程序和路径封装到服务中了,此外服务也可以方便的定义为开机就启动).总之就是两种安装方式. 如果第一次安装建议在MYSQL官网上下载包含INSTALL的方式来做安装,这样就相当于傻瓜式的操作,一般不

Windows下安装Mysql绿色zip版本

以mysql-5.7.4-m14-winx64为例,mysql-5.7.4-m14-winx64.zip下载地址http://dev.mysql.com/downloads/mysql/5.7.html 解压到安装目录D:\mysql-5.7.4-m14-winx64 安装根目录D:\mysql-5.7.4-m14-winx64下创建选项配置文件my.ini [client] port=3306 socket="D:/mysql-5.7.4-m14-winx64/data/mysql.sock&

Windows下搭建MySql Master-Master Replication

1.首先下载最新版的MySql Server (http://dev.mysql.com/downloads/windows/installer/) 2.安装MySql Server到两台机器上 MySql 1: 192.168.0.104 (以下简称104) MySql 2: 192.168.0.103  (以下简称103) 3. 配置Mysql Server启动Binary Logging. 在104的my.ini文件(一般在C:\ProgramData\MySql\MySql Server