xuxiaohui9216 发表于 2018-9-28 06:12:43

Qt Mysql驱动问题

  环境:Mingw编译器,qt-win-opensource-4.3.5-mingw mysql 5.1
  MYSQL新安装好,这个网上好多人都说不能用安装版的,不过我用的是个安装版,只不过在安装的时间要记住选择 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]
查看完整版本: Qt Mysql驱动问题