版本:QT6+vs2019, Mysql8.0。
解决的问题:用qt调用mysql数据库进行编程。目前qt自带的sql驱动不包含mysql,所以无法直接调用。
前提:已经安装好mysql server, qt编译器和源码,配置好vs+qt的开发环境。
注意:以下相关路径为vs+qt的路径,如果直接使用qt creator开发,基本步骤一样,但是构建时需选择MinGW环境构建。引用路径根据实际路径修改。
共三个步骤:1、用qt creator编译得到qsqlmysql驱动。2、将驱动和mysql引用文件复制到vs+qt的开发环境中。3、用vs编写代码测试mysql驱动是否正常。
1、用qt creator编译得到qsqlmysql.dll驱动
运行qt creator打开项目,路径如下。qt6的qt工程文件为makelist,不再使用.pro。
构建时,选择合适的构建平台。在vs环境下使用,需选择MSVC构建。我一开始按照网上的教程选择MinGW构建出来的dll就无法用到vs下运行。
编辑.cmake.conf,增加3行并构建:
SET(FEATURE_sql_mysql ON)
SET(MySQL_INCLUDE_DIR "D:/Qt6/6.4.3/Src/qtbase/src/plugins/sqldrivers/mysql/include")
SET(MySQL_LIBRARY "D:/Qt6/6.4.3/Src/qtbase/src/plugins/sqldrivers/mysql/libmysql.lib")
MySQL_INCLUDE_DIR:mysql的包含路径,原路径在mysql的C:\Program Files\MySQL\MySQL Server 8.0\include。
MySQL_LIBRARY:mysql的lib路径,原路径在mysql的C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib。
构建成功后,将生成debug和release的qsqlmysqld.dll和qsqlmysql.dll。
2、将驱动和mysql引用文件复制到vs+qt的开发环境中
将第一步构建出来的debug和release版的qsqlmysql.dll放到qt+vs的plugins/sqldrivers下。
将mysql的libmysql.dll文件复制到qt+vs的bin目录下。