qt mysql 编译方法

5.15.2 版本   

这个问题困扰了我很久,今天终于搞通了。

    主要原因是:资料都不是很有权威性,东鳞西爪,这种随意猜测,困扰我许久。

     其实,主要问题归结在:

     1. 确认mysql server 的数据库版本,32位和64位。从官网下载的,现在通常是64位,如果不放心,用命令查看,确认下。还有,如果下载安装的是64位mysql,而编译32位的应用程序,编译就会出错。

     2. 编译一组库。

     3. 将编译好的库copy到编译器插件目录下

     4. 将mysql的libmysql 两个库文件copy到编译器bin目录下

  缺一不可。细节可参考下列博文:

    QMYSQL driver not loaded 的原理和解决办法 - lpx15312 - 博客园 (cnblogs.com)

 

Qt 6.5 版本

官网上有一个cmake构建的例子,SQL Database Drivers | Qt SQL 6.5.0

我依据其上的编译方法,吃了药 。。。运行qt-cmake 时,各种环境条件不满足, 安装了一些平时根本用不到的东西后,

最后出结果时,告诉我编译参数不一致,我又不愿意花时间研究编译参数具体细节

于是又回到了老方法实现:

研究一番发现:

结合老式的编译办法,也可以。

1. 找到sqldrivers下的CMakeLists.txt

2. 用QCreator 打开这个txt文件,

3. 修改项目下的.cmake.conf文件,在CMake Modules里。

4. 在这个文件里设置:

SET(FEATURE_sql_mysql ON)
SET(MySQL_INCLUDE_DIR "E:/mysql8_installpath/include")
SET(MySQL_LIBRARY "E:/mysql8_installpath/lib/libmysql.lib")

分别用debug模式和release模式编译。

5. 构建好后,copy编译好的文件( qsqlmysql.dll ):qt 的编译器/plugins 目录下

6. copy E:/mysql8_installpath/lib/libmysql.dll 到 :qt的编译器/bin目录下。

 

题外:如果用qt-cmake 的方法编译失败,会生成一些mysql的 cmake 文件,

调用mysql库时“编译”会出错。

找到刚才生成的cmake文件,删掉他,就可以编译通过了。

 

posted on 2021-10-25 10:55  金凯旋  阅读(354)  评论(0)    收藏  举报

导航