在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 通过条件编译区分Debug和Release代码

Qt 通过条件编译区分Debug和Release代码

QT遇到Release事件无法正常接收的情况怎么办

Qt 教你使用windeployqt工具来进行Qt的打包发布

MFC读取excel文件程序,在release模式下正常读取,但在debug模式编译没问题,运行就关闭,求高手!

qt 打包发布 获取dll