QT5 编译 MySQL 驱动解决 “QMYSQL driver not loaded”
当前环境:Qt5.9.8 mingw53_32
0 前提
- 编译MySQL的驱动需要使用到Qt的源码
- MySQL的include和lib。
1 源码获取
-
下载 Qt 的时候就勾上
-
自己手动下载
这里给大家推荐几个国内著名的 Qt 镜像网站,主要是各个高校的:
- 中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/.
- 清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
- 北京理工大学:http://mirror.bit.edu.cn/qtproject/
- 中国互联网络信息中心:https://mirrors.cnnic.cn/qt/
以中国科学技术大学的目录层次为例:
将压缩包解压到不带中文字样的路径,主要是其中的 qtbase
,我将它复制到Qt安装目录下新建的Src
文件夹下。
2 获取Mysql Connector/C
可以直接通过MySQL installer 直接安装或去我博客资源里下载,不必安装全部的MySQL。
打开之后点击Add,选择最新的Connector/C 这里我选择了x86,32位版本,后边qmake 和 编译的时候都用32位的环境打开,将用到其中的include
和lib
,安装路径:E:\MySQL\Connect
,注意安装路径常规点来,不要有什么中文或者空格,会搜索不到的!
3 编译
-
因为是对源码中的
mysql
部分进行编译,进入到之前下载源码的这个路径,E:\Installed\Study\Qt\5.9.1\Src\qtbase\src\plugins\sqldrivers\mysql
。 -
Qt Creator 打开
mysql.pro
工程里加入头文件路径、库路径,指定最后的生成目录。并注释第7行,否则编译的时候就会产生一个错误: error: Library ‘mysql’ is not defined.
-
执行编译
Qt Creator 命令键Ctrl + B
或者 点一下那个小锤子
4、复制生成和所需的dll到环境变量目录下
- 将生成至
.pro
工程指定路径下的qsqlmysql.dll
和qsqlmysqld.dll
复制到Qt安装路径\5.9.8\mingw53_32\plugins\sqldrivers
下 - MySQL Connector lib文件夹里面的libmysql.dll 需要把此文件复制到运行时环境变量可检测的地方,可以放到编译器的bin目录下
Qt安装路径\5.9.8\mingw53_32\bin
下