第一次打包发布QT写的程序,使用了sqlite数据库,在弄好依赖运行程序的时候发现,程序的sqlite数据库相关功能失效了,搜索资料解决了问题。大致就是在配置依赖的时候少了一部分文件没配置进去。以下是两种方法都可以解决问题:
方法1:大概意思是指定调用动态库文件位置,并且讲QT安装位置中对应的配置文件复制替换掉windeployqt给我们配置的部分文件。
优点:不需要修改代码结构,只需要增加两行代码。
缺点:复制整个文件夹,多余文件过多,整个文件包明显变大了几百兆。
传送门:QT Creator 应用程序*.exe文件打包发布详细教程【绿色便携形式 和 安装包形式】_creator.exe-优快云博客Qt .exe文件打包发布,SQLite数据库无法使用?拷贝了dll也不行?_qt发布的时候用了数据库怎么办-优快云博客
方法2:在方法1传送门的评论区看到的,意思是在main函数中就把sqliet的.db文件创建出来,应该是这样在编译的时候或者是配置依赖的时候就把sqlite需要的文件配置好。我的操作如下:
1、在main函数创建并且打开.db文件。
2、将创建的QSqlDatabase对象传输给dbhelper唯一实例(需要的话就传)。
优点:配置依赖文件的时候精准,不会配置多余的文件,文件包小。
缺点:需要修改原先编写好的dbhelper类。