Qt是一个跨平台C++图形用户界面应用程序开发框架,使用它不仅可以方便地开发GUI程序,也可以开发非GUI程序,可以一次编写,处处编译。
今天遇到的问题比较怪异,我开发的是一个桌面版订单管理系统,整体架构就是一个简单的MVC模式,开发完后使用Qt Install Framework对程序进行打包发布,但问题来了,程序运行后无法建立数据库文件,也无法连接数据库,错误提示信息为:Driver Not Found。与此同时程序是可以运行的,并没有提示缺少库文件之类的信息,只是无法连接数据库。
下图是我用windeployqt程序生成的程序所用到的各种dll等文件,根据以往的经验,使用windeployqt之后不需要再手动去寻找缺少的dll了,其中用到的Qt5Sql.dll和sqldrivers文件夹都是跟数据库有关的,一个不少,但就是无法连接数据库,真实奇怪。
中间解决问题的过程略过,直接上干货:
方法一:
在使用release模式编译生成的.exe文件的同级目录下(即使用windeployqt的同级目录下),新建plugins文件夹,将sqldrivers整个文件夹直接复制进去,包括其中的.dll文件,问题便迎刃而解!
方法二:使用代码手动去加载相应的库,相应的库文件放在当前目录下的plugins/sqldrivers文件夹中
QString path = QDir::currentPath();QApplication::addLibraryPath(path+QString("/plugins"));QPluginLoader loader(path+QString("/plugins/sqldrivers/qsqlite.dll"));
下面是我写的程序的运行图,还不错吧。^_^
如果觉得我写的东西有用,记得关注我哦^_^,一个喜欢投资挣钱的程序员。