在qt里面用release编译运行正常,能连接到数据库,但是无法使用数据库查询了,这是怎么回事喃?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在qt里面用release编译运行正常,能连接到数据库,但是无法使用数据库查询了,这是怎么回事喃?相关的知识,希望对你有一定的参考价值。
用的是sqlite数据库,在Debug一切正常
参考技术A 在生成可执行文件给老板看设计的时候,遇到了无法保存数据的问题,觉得可能是无法链接数据库,或者缺少什么内容的问题,在网上查了一些资料,最终测试可顺利完成数据库的链接。经检验,在window 7 32 or 64下都可以使用。使用的工具是Qt Creator 2.8.0,qt版本4.8.5 数据库为Sqlite 若是使用其他数据库,可能略有不同。具体操作步骤如下:
1)在release文件夹里创建plugins文件夹,并将QT安装目录下的plugins\sqldrivers文件夹下的libqsqlite4.a qsqlite4.dll(数据库不同可能一样) 复制到release\plugins文件夹(如果sqldrivers文件夹中没有你需要的驱动,可能就需要下载其他的驱动了,方法大致相同)
2)main.cpp中添加以下语句 QApplication::addLibraryPath("./plugins");
3)在构建中选中release 后进行编译,生成exe文件。
4)新建文件夹,在你安装qt的目录中(我的目录是D:/Qt/4.8.5/bin)查找qtsql4.dll libgcc_s_dw2-1.dll mingwm10.dll QtCore4.dll QtGui4.dll 然后复制到新建的文件夹中
5)将release下的exe文件和sqldrivers文件夹复制到新建的文件夹。
6)运行生成的exe 文件,就可测试功能了。 参考技术B SQLite路径是不是写成相对路径了?
qt 打包发布 获取dll
发布前,获取所有qt dll包命令
生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径:
C:QtProshellomw
它的项目生成目录是
C:QtProsuild-hellomw-Desktop_Qt_5_4_0_MinGW_32bit-Release
进入这个文件夹,在进入它的子文件夹 release 里面,找到 hellomw.exe ,
将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到
D:hellomw 文件夹里面。
然后从开始菜单打开 Qt 命令行,输入命令 :
cd /d D:hellomw
然后使用 windeployqt 工具命令:
windeployqt hellomw.exe
:另外值得一提的是,并不是说qt的程序就只需要qt的dll包,有时也需要vslib
比如:mfc140.dll msvcp140.dll等
总之发布时需要打包一些库,主要看需要部署的环境到底缺什么库,运行环境等
以上是关于在qt里面用release编译运行正常,能连接到数据库,但是无法使用数据库查询了,这是怎么回事喃?的主要内容,如果未能解决你的问题,请参考以下文章
Qt 教你使用windeployqt工具来进行Qt的打包发布