Qt用Mingw编译MySQL驱动

ac OS X编译安装MySql是件非常轻松的活,在Windows里却花了很久。

系统: Windows
Qt: 直接使用Qt SDK安装的,所以得手动把bin目录设置到环境路径下
Mysql: 下载最新社区版
黄色背景部分为关键部分

总的步骤:
1. 生成mingw使用的mysql的libmysql.a文件
2. qmake生成mysql.pro文件
3. 把includepath和libs的内容加入到mysql.pro文件
4. make, make release 生成mysql的驱动文件
5. 复制生成的驱动文件到qt的数据库驱动文件夹
6. 复制mysql的lib/libmysql.dll到qt的bin文件夹

MySQL:  安装时不要用经典安装,选择完全安装或者自定义把头文件和库勾选上,这样安装后会有for c/c++的头文件和库目录,MySql我就安装在C盘根目录下了

因为这里我们使用MinGW来编译驱动,mysql提供的这个libmysql.lib我们还不能直接用(如果用微软的编译器就不用这样了),我们需要用个工具转成*.a来用。

工具下载: http://www.qtcn.org/download/mingw-utils-0.3.tar.gz

解压我们只用remip.exe这个东西,把他放在你的mingw/bin和那些make.exe放一起就行。

cd C:/mysql/lib

reimp -d libmysql.lib (生成 libmysql.def文件)

dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)

over了,出来这2个东西了。

好了需要的libmysql.a准备好了

下面开始编译之旅:

来到qt mysql驱动的源程序目录,有个cpp文件和一个qt项目文件。

cd %QTDIR%/src/plugins/sqldrivers/mysql (当前目录转到源程序目录)

qmake -o Makefile "INCLUDEPATH+=C:/mysql/include" "LIBS+=C:/mysql/lib/libmysql.a" mysql.pro

如果你的mysql安装在其他地方,如果路径上有空格之类的,直接复制include和lib目录到C盘根目录下的mysql目录好了,方便一会写路径。)

接下来的步骤很关键,开始的时候没有使用下面的方式,弄了很久都不行。

在刚刚生成的mysql.pro中加入以下:

INCLUDEPATH+="C:/mysql/include"
LIBS+="C:/mysql/lib/libmysql.lib"
HEADERS =../../../sql/drivers/mysql/qsql_mysql.h
SOURCES = main.cpp\
          ../../../sql/drivers/mysql/qsql_mysql.cpp


然后

make

make release

至此在debug和release目录里生成了下面的这四个文件


复制上面的这4个文件到qt的plugins/sqldrivers目录:例如我的:C:/QtSDK/Desktop/Qt/4.7.4/mingw/plugins/sqldrivers

同时也要把mysql/lib/libmysql.dll这个文件复制到qt的bin目录:例如我的:C:/QtSDK/Desktop/Qt/4.7.4/mingw/bin

你可能感兴趣的:(Qt)