网上有很多关于编译mysql驱动的文章,其实步骤都大同小异,但是完全的照做期间可能也会出现很多问题,我也是捣鼓了一天多才弄出个结果来,整理一下,以备后用。
【步骤说明】:
步骤一:
在C:/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"
注意:默认安装mysql可能没有opt目录产生的,这就需要在安装mysql过程中需选择自定义安装,中间有个过程可以选择添加include source类似的字眼的东西(具体忘记了,默认是X选项,是没有选择的)。
步骤二:
从命令行进入C:/Qt/2010.05/qt/src/plugins/sqldrivers/mysql目录,生成Makefile:
qmake -o Makefile mysql.pro
(期间可能会有警告:WARNING: c:/Qt/2010.05/qt/src/plugins/sqldrivers/mysql/mysql.pro:3: Unescaped backslashes are deprecated.暂不用理会,不会影响结果)。
步骤三:
执行make命令。
【问题说明】:
1、用nmake命令会产生如下错误:
NMAKE : fatal error U1073: don't know how to make 'c:/Program/' Stop.
NMAKE : fatal error U1077: '"C:/Program Files/Microsoft Visual Studio/VC98/bin/NMAKE.EXE"' : return code '0x2'
所以不能用nmake编译。
2、让make命令生效:
我安装的是QT SDK for Windows(qt-sdk-win-opensource-2010.05.exe),默认情况下是不能执行make命令,从Qt安装目录下搜索了一把(搜索make.exe),结果只有qmake.exe和mingw32-make.exe,注意这个mingw32-make.exe文件,在使用Qt Creator IDE编译时输出信息中也总是会有这个命令信息。这里只需要简单的将mingw32-make.exe拷贝一份,并命名为make.exe便可以使用make命令(前提:环境变量中添加C:/Qt/2010.05/mingw/bin路径)。
3、执行make命令时可能还是编译不过,报错信息中会有很多关于C:/Program Files/Microsoft Visual Studio/VC98/include目录的信息。
我怀疑是我电脑里安装的VC6的问题,可能Qt库中有很多与VC同名的文件,而环境变量中C:/Program Files/Microsoft Visual Studio/VC98/include的位置比Qt路径靠前,编译时包含的是VC的头文件所以才报错。我简单的将VC98目录改了一下名(任意改名,只要不是VC98就OK了,不过完了之后还得把它改回来,免得影响VC的使用),再次编译就通过了,写了个连接mysql的小程序验证了下,已经能连接上了。
4、网上有很多人说要用reimp.exe生成libmysql.def、libmysql.a,从我上面描述的步骤里看,似乎用不着。
关于编译mysql驱动的文章连接:
http://www.qtcn.org/bbs/read.php?tid=43300
http://www.qtcn.org/bbs/read.php?tid=34753
http://blog.csdn.net/polokang/archive/2011/05/08/6403303.aspx