二、编译 (Qt5版)
1. 配置sqldrivers项目 (qmake)
Qt5源码只有.pro文件,所以需要使用qmake配置
配置时是全部sql插件一起,后面可以单独编译mysql
qmake <Qt源码目录>\qtbase\src\plugins\sqldrivers -- MYSQL_PREFIX="<库目录>"
在Qt文档和其他教程里可能会看到不是设置的MYSQL_PREFIX,而是MYSQL_INCDIR和MYSQL_LIBDIR,其实是一样的,设置了*_PREFIX的话,会自动将*_INCDIR设为<prefix>/include,*_LIBDIR设为<prefix>/lib
因为前一篇提到的几个库包都使用了比较标准的include和lib文件夹命名,所以这边简单一点设置一下prefix就可以了
注意:Qt5从5.15才开始默认兼容MariaDB的库名称libmariadb,之前的默认库名都只有libmysql,所以如果是5.14及以下版本使用MariaDB还需要加上MYSQL_LIBS=-llibmariadb
运行结果如图:
可以看到配置结果MySql右边是yes,表示配置是成功的,可以编译
注意如果有步骤不对导致配置不成功要重新配置的话,需要先把生成的临时文件都删除再重新运行qmake命令,这也是为什么推荐不要在源码目录编译而是创建单独目录的重要原因
2. 编译MySQL插件
从上面的图可以看到MSVC版需要使用'nmake'进行编译,如果是MinGW版则是'mingw32-make'
为了只编译MySQL我们要在后面加上子目标名称
nmake(或mingw32-make) sub-mysql
编译成功后在当前目录的plugins\sqldrivers下生成了dll文件和调试文件(.pdb或.debug)
再运行以下命令把编译的插件安装到Qt的目录下
nmake(或mingw32-make) install
其他部分链接: