1.概述
最近使用PySide6开发程序,涉及与MySQL的数据交互。但是qt官方自pyqt5.12(记不太清了)以后不再提供MySQL的插件驱动,只能自己根据qt的源码编译。不过网上大部分都是qt5的MySQL驱动的编译教程。后来搜到了一个qt6的编译教程:
PySide6程序打包后无法运行 no Qt platform plugin could be initialized_space9bug的博客-CSDN博客
尝试过了基本可以使用,大家可跳转参考。这里记录一下我自己踩的坑。
那就是安装的pyside6版本要和你用来编译的qt源码对应,否则会报错driver not loaded,截图如下:
引起上述截图错误的pyqt配置是:PySide6版本是6.4.1,而我用来编译MySQL驱动的qt源码是6.4.2,因而出错。解决的办法其实已经出来了,要么切换PySide6的版本为6.4.2,要么拿Qt6.4.1的源码来编译。
我切换PySide6的版本到6.4.2之后,不再报上述的错误。我一开始尝试找Qt6.4.1的源码,不过官方没有提供这个版本的源码(也许是我自己无能找不到)。截图如下:
上图是Qt官方提供的在线安装程序,可以看出没有Qt6.4.1的选项。
大家安装的时候,选择“Sources”就会在安装目录下找到Qt的源码:
2.CMAKE生成VS项目文件
既然是笔记,那我还是啰嗦一下,万一前面那个链接删帖了呢,后面就麻烦了。
我的编译环境:
(1)操作系统:Win11 64位系统;
(2)MySQL:8.0.31 64位;
(3)CMAKe:3.25.1;
(4)Microsoft Visual Studio Community 2019 :16.11.23
具体步骤如下:
Step1:打开CMAKE,如下图所示,找到Qt的源码所在路径
Step2:选择存放输出文件的空目录,如下图所示
Step3:点击Configure
点击configure后会弹出如下对话框:
此时选择你电脑上对应的Visual Studio版本,如果安装了多个Visual Studio,CMAKE应该会检测到它们,即:
但我觉得这应该是CMAKE支持的项目文件生成器,所以说你电脑安装了那个生成器就选择哪个,比如我电脑安装了Visual Studio2019,所以我就选择Visual Studio 2019,即:
点击上图的“Finish” 完成生成器的选择。此时CMAKE会输出如下信息:
大概意思是列出你刚刚选择的VS版本中对应的CXX(应该是C++) 的编译器,C语言的编译器,汇编编译器。
一般这一步都会因为找不到Qt的相关信息而报错,我的错误是:
弹窗中意思是:配置过程中发生错误,项目文件可能无效。此时点击“ok” 关闭即可,我们仔细查看上图中红色的错误信息,我截图如下:
意思其实很明显了,CMAKE找不到Qt6的相关信息,解决方法它也给出来了,即添加“CMAKE_PREFIX_PATH”或者设置“QT6_DIR”环境变量,该环境变量包含上述文件(图中Qt6Config.cmake和qt6-config.cmake),怎么知道这两个文件在哪里呢,大家可以用everything搜索一下嘛,比如我的:
因为我们前面的生成器配置中择了 VS2019 64位,所以这里应该选择图下红框处:
此时点击CMAKE中的“Add Entry”新建环境变量:
弹出如下对话框,选择"PATH”,在Name那一栏输入:CMAKE_PREFIX_PATH
在Value那一栏找到前面用everything搜索到的路径,最后的信息如下:
点击“ok” 即可,再次点击“Configure”,输出如下:
红框处显示“yes”的话说明,配置成功,如果出错,请参考Qt6编译Mysql驱动_舍先生的博客-CSDN博客_qt6 mysql这个链接修正。
Step4:点击“Generate”
此时已在目录下生成相应的项目文件信息:
剩下的步骤按照这个链接Qt6编译Mysql驱动_舍先生的博客-CSDN博客_qt6 mysql来操作即可 ,懒得写了。