Windows下mysql安装,生成qt驱动过程

来源:互联网 发布:编程工资多少一月 编辑:程序博客网 时间:2024/05/16 05:27

Windowsmysql安装,生成qt驱动过程

1、  准备开发包

mingw-utils-0.3.tar.gz

    mysql-noinstall-5.0.96-win32.zip

qt-sdk-win-opensource-2010.04.exe

分析:

1)  mysqlmsvcmingw作用关系。Mysql提供的库只有msvc可以识别,mingw不恩能够识别,必须用reimp.exemysql下边的库格式转换成mingw能够识别的。

2)  mysql选择非安装版。因为需要其中两个文件夹,includelib。若选安装版,不能选typical型,这样会缺少库文件。可选full,custom。但是full型有问题,文件路径有空格。解决办法:C:创建mysql,然后将includelib拷贝进去。

3)  QT选择的版本比较低,如果是4.7,4.8,尝试环境变量有问题,(有待继续研究)

2、  开始安装

准备工作:

a、  解压mingw-utils-0.3.tar.gzbin目录下的remip.exe拷贝到mingwbin中。

b、解压mysql-noinstall-5.0.96-win32.zip,创建C:\mysql\,下边有两个目录:includelib

  c、安装qt-sdk-win-opensource-2010.04.exe,在D\Qt\2010.04\下边有qtmingw等。

d、环境变量的设置,否则后边会出现mingw32-makeqmake命令不能执行。

   系统环境变量中:QTbin,mingwbin,QT下边qt下的bin

      PATH= D:\Qt\2010.04\bin;D:\Qt\2010.04\qt\bin;D:\Qt\2010.04\mingw\bin;
       
QTDIT= D:\Qt\2010.04\qt                      

      QMAKESPEC=win32-g++ 

e、从libmysql.lib生成libmysql.a文件(mingw使用的是静态链接文件为linux格式*.a

>>C:
>>cd mysql\lib\opt
>>reimp -d libmysql.lib (
生成 libmysql.def文件
)
>>dlltool -k -d libmysql.def -l libmysql.a (
生成 libmysql.a文件)

    f、生成QT下的mysql驱动:

 >>d:
>>cd Qt\2012.04\qt\src\plugins\sqldrivers\mysql
>>QMAKE -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\lib\opt\libmysql.a" mysql.pro
>>mingw32-make

    看到D:\Qt\2010.04\qt\plugins\sqldrivers下边多了四个跟mysql相关的文件,那么成功。

qsqlmysql4.dll   

libqsqlmysql4.a  

qsqlmysqld4.dll   

libqsqlmysqld4.a  

3、  常见问题总结

1)mysqllib\include目录能为空

2)环境变量没有设置,就会出现问题。

3)出现警告,WARNING: (internal):1: Unescaped backslashes are deprecated.   

WARNING: (internal):1: Unescaped backslashes are deprecated.   

WARNING: (internal):1: Unescaped backslashes are deprecated.

解决:

用记事本打开D:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql\ mysql.pro文件,在第二行加入:D:\Qt\creater\qt\bin\qmake.exe -o Makefile “INCLUDEPATH+=D:/soft/mysql/include" LIBS+="D:/soft/mysql/lib/opt/libmysql.lib " mysql.pro

并保存.

4)mingw32-make时,出现一堆Vc98错误,

解决:

vc98时自动的配置了环境变量include lib ,先删了这两个环境变量,执行完mingw32-make命令后再重新配置回去就没有问题了。

5)出现问题:cannot find -llibmysql

解决:

检查qmake设置路径是否正确。尤其是连接库路径。

4 测试

#include <QSqlDatabase>

#include <QSqlError>

     测试代码:

Cpp代码  

1.  QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  

2.  db.setHostName("localhost");  

3.  db.setDatabaseName("gamesql");  

4.  db.setUserName("root");  

5.  db.setPassword("netjava");  

6.  bool ok = db.open();  

7.  if(!ok){  

8.      qDebug()<<"failuer";  

9.      qDebug()<<db.lastError();  

10. }else{  

11.     qDebug()<<"success";  

12. }  

 

原创粉丝点击