qt4.7.3编译MYsql驱动
来源:互联网 发布:金钥匙软件下载 编辑:程序博客网 时间:2024/06/05 19:55
原文有点乱,重新整理(有图有真相):
http://blog.csdn.net/qust_waiwai/article/details/12450449
最近由于要做一个软件,不得不又重新捡起放弃已经很久的QT,才发现版本更新的这么快。。。都到了4.7.3了在连接MYsql数据库的时候出问题了。没有驱动,Baidu了一下,又看了文档说明,原来是其他由于权限的问题,只给出了部分数据库的驱动(只有sqlite)其他的驱动只给出了源文件还有文档说明,需要自己编译,晕死,文档全是英文的,不太喜欢,没办法,边百度边看文档终于解决了问题,还是把这些东西贴出来吧,不少像我以一样的初学者肯定也会遇到这样的问题:
首先,这样的教程在网上有很多,我选了一下比较好的贴出来网址,但是根据自己的情况不同可能会遇到很多问题。。。但是大同小异,基本上都可以解决:
http://blog.knowsky.com/201556.htm
http://blog.knowsky.com/201556.htm
http://no001.blog.51cto.com/1142339/300920
http://www.blogjava.net/nokiaguy/archive/2009/03/23/261502.html
http://www.blogjava.net/nokiaguy/archive/2009/03/23/261502.html
http://no001.blog.51cto.com/1142339/300920
http://www.blogjava.net/javabloger/archive/2008/07/14/214740.html
http://space.itpub.net/22893636/viewspace-663033
mingw-utils包下载:http://www.qtcn.org/download/mingw-utils-0.3.tar.gz
闲话少说:解决问题首先是要下载安装MYsql还有QT,这个不用多说了,接触过的都熟悉了,PS(以前下载的时候都是SDK集成的开发环境,但是,最近我下载的时候发现不一样了,SDK把不需要的塞班也加进去了,开发包很大1.5G,安装需要9G的空间)没办法我只能下载的
qt-creator-win-opensource-2.2.0
qt-win-opensource-4.7.3-mingw
安装的时候可能会遇到点错误,上面给出的网址中有解决的遮掩问题的,哈哈,放心吧。。。然后就是MYsql,我安装的是5.5,一个比较新的版本,下载网址是:
http://www.mysql.com
安装的时候最好就一次安装好,不然就悲剧了,这个很难被卸载。。。
=================================================================================然后就是编译mysql驱动了:打开Qt Command Prompt。你会发现,你的环境变量他自己给你设定了,这样的话,就需要在你的编译驱动之前就修改这些环境变量,不然的话会在编译的时候遇到各种“不是命令或者内部文件”的问题首先打开qt-win-opensource-4.7.3-mingw安装目录下面的bin目录找到Qt Command Prompt的批处理文件,然后编辑他的环境变量的部分“PATH”记住有两处需要修改,然后就是具体的操作了(派出了各种问题的隐患)===================================================================================
引用::
You need to get the MySQL installation files. Run SETUP.EXE and choose "Custom Install". Install the "Libs & Include Files" Module. Build the plugin as follows (here it is assumed that MySQL is installed in C:/MYSQL): cd %QTDIR%/src/plugins/sqldrivers/mysql qmake -o Makefile "INCLUDEPATH+=C:/MYSQL/INCLUDE" "LIBS+=C:/MYSQL/LIB/OPT/LIBMYSQL.LIB" mysql.pro nmakeIf you are not using a Microsoft compiler, replace nmake with make in the line above.
这就是一个容易搞混的地方,上面是使用的libmysql.lib和nmake来编译的,如果使用的是msvc的编译器,那上面是没问题的,但是如果使用的是mingw编译器,那就会出错,有undefined reference....等类错误字样。这是因为mingw使用的库和msvc使用的不同格式的库而引起的。而mysql只提供了msvc可使用的库。 qt4 for mingw要想编译出qsqlmysql库来,我们先得编译出mingw需要的libmysql.a这个文件来,可使用mingw工具来生成。mingw -utils包里的reimp命令(如果没有这个命令的话,可从本帖开头处给出的地址中下载这个文件,并把它解压开后的bin目录里的reimp内容拷贝到 mingw的bin目录下面。mysql安装的时候默认的安装路径中有空格,我们得先把它的include和lib目录拷贝到没有空格的路径下,比如C: /mysql下)
CODE:cd c:/mysql/lib/optreimp -d libmysql.libdlltool -k -d libmysql.def -l libmysql.a这时候你会发现你的lib文件夹下面会多出两文件:libmysql.a & libmysql.def(推荐使用mysql5.5,其他的貌似没有libmysql*.lib文件)
然后使用qmake和make命令:
cd %QTDIR%/src/plugins/sqldrivers/mysql qmake -o Makefile "INCLUDEPATH+=C:/MYSQL/INCLUDE" "LIBS+=C:/MYSQL/LIB/OPT/LIBMYSQL.a" mysql.pro make这下便会在%QTDIR%/plugins/sqldrivers目录下面生成libqsqlmysql.a, qsqlmysql.dll这两个文件了。
注意这里可能会遇到这种问题:
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.
我也遇到了你的这个问题,我把我的解决方法给你,希望对你有用。
(1)dos下进入:D:/Qt/2010.05/qt/src/plugins/sqldrivers/mysql>
(2)用记事本打开D:/Qt/2010.05/qt/src/plugins/sqldrivers/mysql/ mysql.pro文件,在第二行加入:INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 5.1/include"LIBS += "C:/Program Files/MySQL/MySQL Server 5.1/lib/opt/libmysql.lib"并保存
(3)在dos下输入:
qmake -o Makefile mysql.pro此时可能也会提示:
WARNING: d:/Qt/2010.05/qt/src/plugins/sqldrivers/mysql/mysql.pro:2: Unescaped backslashes are deprecated.WARNING: d:/Qt/2010.05/qt/src/plugins/sqldrivers/mysql/mysql.pro:2: Unescaped backslashes are deprecated.WARNING: d:/Qt/2010.05/qt/src/plugins/sqldrivers/mysql/mysql.pro:2: Unescaped backslashes are deprecated.
但是好像对最后的结果没有影响
然后使用make命令;
但是这时候只有在debug文件夹有两个文件
然后使用make release生成release目录下的文件
qsqlmysql4.dll
libqsqlmysql4.a
qsqlmysqld4.dll
libqsqlmysqld4.a
这时候把这几个文件拷贝到C:/Qt/……/plugins/sqldrivers下面;
另外,根据文档所说的,还要把libmysql.dll复制到system32目录ok,解决了一下是引用的我参考的文章:文章的出处是:http://no001.blog.51cto.com/1142339/300920==============================================================================
- qt4.7.3编译MYsql驱动
- qt4.8编译MYSQL 驱动
- windows下Qt4.8编译MYSQL驱动
- VS2008下Qt4编译MySQL驱动
- Qt4.7.3 编译MYSQL5数据库驱动--回顾
- 解析Qt4.7.3编译MySql数据库驱动,存中文乱码、过滤转义字符问题
- QT4.7.1版本 mysql驱动插件 编译的问题
- ubuntu 12.04 下编译 qt4.8.2 和mysql驱动
- win7编译的QT4.8.4的mysql驱动
- 在VS2010中集成QT + Qt4.8.2编译MYSQL驱动
- win7编译的QT4.8.4的mysql驱动
- win7编译的QT4.8.4的mysql驱动
- Qt4.8.5 配置mysql驱动
- Win7使用Visual Studio 2010编译用于Qt4.8.6的MySQL驱动
- Qt4.7.2+VS2008+mysql5.5.24驱动编译
- Qt4.8.5编译mysql5.7.30驱动
- 安装Qt4过程之编译Qt4.7.3
- Ubuntu 11.10 QT4.7驱动MYSQL
- 使用SSE4指令集优化双线性插值图像缩放
- 读取日志文件
- pku--3752 字母旋转
- POJ1001 -- A-B Problem
- 设计网站的URL时应该注意的八个要点
- qt4.7.3编译MYsql驱动
- Microsoft Technical Fellows
- 正则表达式中的?
- android入门
- RS232 串口通信在DSP 控制系统中的设计与应用
- PPC E500内核寄存器
- AutoEventWireup 属性的作用(转载)
- Howto:Ubuntu下配置apache2和perl cgi
- BOJ1018 -- Airline Hub