Qt Mysql驱动问题
环境:Mingw编译器,qt-win-opensource-4.3.5-mingw mysql 5.1MYSQL新安装好,这个网上好多人都说不能用安装版的,不过我用的是个安装版,只不过在安装的时间要记住选择 include filse 选项,这样的话头文件和链接库就会安装在Mysql目录下面相应该的文件夹里了。安装路径大家都说不要有空格,我没试有空格的情况,我是放在了C:\MYSQL5,系统盘是D盘。安装好后,libmysql.dll 在C:\mysql5下的bin目录,libmysql.lib在C:\mysql下的lib\opt目录下,头文件在include目录下。
Qt安装就不扯了,Mingw可以先装好,如果没装也可以在安装Qt的时候在线安装,这个过程其实就是 下一步,只是Mingw的路径可能需要自己填写(事先安装好的需要)。路径中不要有空格。我是分别放在C:\QT,C:\Mingw下的。
路径设置:我试了网上好多方法,但我都没成功,可能是我设置的有问题,所以干脆用到哪个路径就加进去,呵呵。INCLUDE里加上了c:\mingw\Include;;LIB里加上了c:\mingw\Lib;;PATH加的有c:\mingw\bin;c:\qt\bin;C:\mingw;c:\mysql5;C:\Qt\include;
还需要下载一个动态库格式转换工具,网址为: http://www.qtcn.org/download/mingw-utils-0.3.tar.gz,解压后把里边bin目录里的remip.exe拷到mingw的bin目录里就可以使用了
以下为本人机器上的命令行操作,路径请修改为自己设置的:
过程:
1:从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文件)
2:生成Qt下的mysql驱动:
>>cd \
>>cd qt\src\plugins\sqldrivers\mysql
>>QMAKE -o Makefile "INCLUDEPATH+=C:\MYSQL5\INCLUDE" "LIBS+=C:\MYSQL5\LIB\OPT\libmysql.a" mysql.pro
>>make
此处需注意,上边的大小写一定要这个格式,别人也有不同的格式,不过我试过的在我这儿都没有通过。建议复制后去修改这段内容。
make时如果出现 "-llibmysql not found" 错误的话,把libmysql.lib复制到qt\lib里就可以解决。
make时还有可能会出现VC了什么的乱78糟的头文件,可以去把环境变量里那些内容去掉,在编译完这个再修改回去,反正我是这样搞的,听说可以用DOS命令去改,不过我不会用,呵呵
在使用时如果还是提供 Driver not loaded的话把libmysql.dll复制程序的运行目录里即可。记住在pro文件里加上一句:
QT += sql (上次忘记说了,汗个)
在Nokia提供的QT开源版(qt-sdk-win-opensource-2009.05.exe 200M左右吧)里也可以用这个方法,我比较喜欢这个,因为有一个简单的IDE,并且自带Mingw编译器,可以省事一点。不过make的时候要改用mingw32-make。
这么点破事害我两三天没睡好,OK
其实这篇文章是我自己原创,不过没有在51cto首发,所以注了个转载,顺便把编译好的库传上来
页:
[1]