Qt编译qsqlmysql.dll插件

感想

由于项目需要在qt环境中使用mySQL数据库,而qt4又没有直接提供qsqlmysql插件,因而只能自己编译。中间走了很多弯路,在此总结一下。

工具

  • Qt4.8.6X64_msvc2010
  • MySQL C链接库
  • MySQLServer

步骤

  • 1.如果没有Qt4.8.6X64_msvc2010 ,则需要自己下载qt ,然后编译64位的在visual studio中使用的版本。编译过程参考其他文献。
  • 2 下载 MySQL C链接库。 http://dev.mysql.com/downloads/connector/。
    Qt编译qsqlmysql.dll插件_第1张图片
    我下载的是mysql-connector-c-6.1.6-winx64.msi
    把c的链接库解压到c:\mysql目录下。(放到其他目录下也可以,但是路径中不能有空格)
  • 3 找到qt4.8.6X64_msvc2010的目录。打开src\plugins\sqldrivers\mysql,我的目录是:
    C:\Qt\qt-4.8.6-x64-msvc2010\qt-4.8.6-x64-msvc2010\src\plugins\sqldrivers\mysql
    把刚刚解压的c:\mysql\lib下的libmysql.dll 和libmysql.lib复制到此目录下
    Qt编译qsqlmysql.dll插件_第2张图片
    一开始你的文件夹下面应该只有红色圈住的四个文件 ,其他的是我后来生成的。
  • 编辑目录下的mysql.pro文件,使用txt文本编辑器打开。在最下面添加如下两行
    INCLUDEPATH += “C:/MySQL/include”
    LIBS += “C:/MySQL/lib/libmysql.lib”
    Qt编译qsqlmysql.dll插件_第3张图片
  • 4 打开vs command prompt ,我的工程全是使用64的库,因而选择的是64位的
    Qt编译qsqlmysql.dll插件_第4张图片
    注意这里打开的是vs的command 。因为我是要在vs中使用qt的mysql的。如果是在qtcreator中使用的话,要打开qt 的command prompt。
  • 5 在vs 的command prompt中做如下操作:
    首先切换到 C:\Qt\qt-4.8.6-x64-msvc2010\qt-4.8.6-x64-msvc2010\src\plugins\sqldrivers\mysql
    然后输入qmake mysql.pro 回车 (注意,这里,网上的其他教程会写成 qmake “INCLUDEPATH += C:\MySQL\include” “LIBS += C:\MySQL\lib\libmysql.lib” mysql.pro 。不知道怎么回事儿,我这样写的时候会出错,你可以试试这样写,如果也出错的话,就按照我的方法)
    最后 输入nmake回车 (此时会发现当前目录下多了debug文件夹,打开debug文件夹,发现里面已经生成我们需要的qsqlmysqld4.dll qsqlmysqld4.lib)。
    然后再输入nmake release生成release文件夹。到这里,已经生成了debug和release版本的驱动了。
    Qt编译qsqlmysql.dll插件_第5张图片
  • 6 接下来是在vs中使用的相关配置
    把debug和release文件夹中的qsqlmysqld4.dll 、qsqlmysqld4.lib 、qsqlmysql4.dll 、qsqlmysql4.lib四个文件拷贝到C:\Qt\qt-4.8.6-x64-msvc2010\qt-4.8.6-x64-msvc2010\plugins\sqldrivers文件夹下:
    Qt编译qsqlmysql.dll插件_第6张图片
    然后把c:\mysql\lib下的libmysql.dll拷贝到C:\Qt\qt-4.8.6-x64-msvc2010\qt-4.8.6-x64-msvc2010\bin目录下(这个目录应该加在系统环境变量的path中)。
    然后在vs的属性管理中的linker 的input 的 additional dependencies 添加
    C:\Qt\qt-4.8.6-x64-msvc2010\qt-4.8.6-x64-msvc2010\lib\QtSqld4.lib (这是debug版本配置)
    C:\MySQL\lib\libmysql.lib
    Qt编译qsqlmysql.dll插件_第7张图片
    • 7 编译驱动的过程其实不需要mysql server。只是在实际使用mysql编程时,需要安装mysql server。 安装mysql server ,需要下载http://dev.mysql.com/downloads/installer/
      我下载的是mysql-installer-community-5.7.11.0 .msi 安装即可。

你可能感兴趣的:(qt4,mysql,Qt-c++-my)