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文件,删掉他,就可以编译通过了。
浙公网安备 33010602011771号