运行 程序会默认使用当前所在文件夹中的 dll 文件,若文件不存在,会使用系统环境变量路径中的文件;又或者是需要在程序源代码中明确指定使用的 dll 的路径。由于我安装 Qt 时将相关 dll 文件路径都添加到了系统环境变量中,所以即使我在未添加 dll 文件时,软件仍然能够成功运行,但添加之后,程序使用的就是当前文件路径下的 dll 了,而可能由于缺少某些文件,导致这种奇奇怪怪的问题。于是采用一种暴力手段、
这种方式,让我想到了php连接数据库 也是dll 的方案。 因为连接数据库的 方法 你压根没有写过,肯定 需要引入公共组件才能正常使用!
解决办法
QString appDirPath = qApp->applicationDirPath(); // .exe文件运行的目录
{
QApplication::addLibraryPath(appDirPath + QString("/plugins")); // 指定库文件位置
QPluginLoader loader(appDirPath + QString("/plugins/sqldrivers/qsqlite.dll")); // 指定库文件名
}
同时需要复制
C:\Qt\6.5.3\msvc2019_64\plugins\sqldrivers\qsqlite.dll
一顿猛如虎操作,数据库访问正常了!
参考文章
qt4 release打包程序无法连接sqlite数据库问题_sqlite_chenmeilun-腾讯云开发者社区
Qt .exe文件打包发布,SQLite数据库无法使用?拷贝了dll也不行?_qt发布的时候用了数据库怎么办-CSDN博客