QT+MYSQL Release后在“driver not loaded”解法
1.release后打包的exe提示driver not loaded
将libmysql.dll复制到exe同级目录下。
在exe同级目录新建文件夹plugins,将该目录下原有的sqldrivers放入plugins中。
2.自己电脑可运行,在别人的电脑可运行可不运行
根据个人删删装装dll的测试,原因主要在于缺少dll(不懂相关知识,以下解决办法)
去MySQL的安装目录下的Mysql Shell 下的 bin文件夹中的两个dll(libcrypto-1_1-x64.dll,libssl-1_1-x64.dll)
复制到exe所在目录。(经测试 这样就算把MYSQL文件夹删了也可以链接成功)
我自己的MYSQL安装目录:C:\Program Files\MySQL\MySQL Shell 8.0\bin
同样的 在这个目录下把里面的dll全部复制到exe同级文件下(这里的dll复制过去不确定有没有用,因为我跟 后面的一起整了,这个是看别人的贴子整的)
我的目录:C:\Program Files\MySQL\Connector C++ 8.0\lib64
在C盘下搜索libeay32.dll,ssleay32.dll(一般装别的应用会有装,我是在VS的文件夹里面搜到的)
网上找的也可以
最后一步便是在需要运行你的程序电脑里安装Microsoft Visual C++ 2015-2019 Redistributable
我安装的是X64,应该是对应你libmysql的位数安装,当然都装也行,不冲突。
这样就完成了,成功在别人的电脑上运行。
总结
整了今天一天,才整出来,成功运行。
个人认为出现第二种情况的主要原因就是:在完成了第一次打包后,并没有将第二步中的dll导入,导致在没有安装MYSQL(没有相关dll)以及没有安装Microsoft Visual C++ 2015-2019 Redistributable 的电脑中无法运行,而在安装这些东西的电脑上可以运行。希望有大佬能深入讲解原理,感激不尽。