玩qt5也有一段时间了,惭愧的是一直没有好好的发布过程序,因为写的都是小程序没啥需要用到发布,而且qt也说不上很熟悉,本来打算到基本掌握qt之后再来研究研究怎么打包程序,最近晚上的空闲时间多了,闲着也是闲着,于是便来试试。

在网上搜索了一下资料,发现资料比较少,qt5打包的也只看见几篇博文,也不是很详细,所以当我成功的打包了我的第一个程序之后心里想着的就是一定要把经验共享出来,这方法不一定是最好的,而且可能也还存在很多问题,这都有待我以后慢慢挖掘,也望大家多多指点,共同进步。
打包:
(1)首先程序要想发布,在编译器编译一定要选择“release”而不是“debug”,编译成release版本;
 
  (2)编译成release之后,找到目录:


其实如果直接在这里双击“chat.exe”也是会提示缺少的dll文件,然后在qt的安装目录找对应的dll文件,将dll复制到该目录即可,dll在下面的路径:(VS版本可能有点不一样,不过都是bin目录下的)
但是这样我试过很多次,即使提示的dll都复制进来了,双击也可以运行了,可是放到其他电脑还是无法运行,这是因为依旧缺少文件,如plugins下的一些插件,因此这样还是无法打包成功的。
于是为了更加方便快捷的解决这个问题,我们使用qt自带的windeployqt.exe寻找依赖的文件,我们使用批处理bat,在当前目录(即编译成release后的可执行程序所在目录)新建个bat文件:

使用记事本打开或者其他编辑工具亦可,然后把下面的代码复制进去保存;
如果使用的msvc版本的:
C:\Qt\Qt5.4.2\5.4\msvc2013_64\bin\windeployqt.exe myexe.exe
 
pause
 
 
如果使用的是mingw版本的:
C:\QT5\5.5\mingw492_32\bin\windeployqt.exe myexe.exe
 
pause
 
代码解析:C:\Qt\Qt5.4.2\5.4\msvc2013_64\bin\windeployqt.exe这个是windeployqt.exe工具的路径,要根据自己的qt安装情况进行修改,首先在这里看能不能找到windeployqt.exe,找到了直接把其路径复制过来即可;myexe.exe则是你的可执行程序的名称,不要照抄这里的。
 
(3)上面步骤完成之后直接双击这个bat文件就会把需要用到的所有dll文件自动复制到当前目录下:

很便捷。
这个时候再去双击你的可执行程序应该就可以运行了。
 
(4)接着就需要把这些文件打包成一个exe文件了,我们可以用Enigma Virtual Box这款软件, 现在最新的版本已经是7.4了,百度一搜索就有,然后就开始添加文件打包了:




最后点击“执行封包”就能生成一个exe文件,如图示:
于是这个打包好的程序就可以放到其他电脑上运行啦。

 
(5)如果有需要制作成安装包程序可以使用Inno setup这款软件制作安装包,当然网上还有很多其他类似的,就需要大家自己去尝试啦,制作安装包的方法也是类似的,准备所需要的文件之后添加进去就可以了,网上很多这样的教程,大家参考这篇博文:http://blog.csdn.net/ruifangcui7758/article/details/6662646。
 
 
总结,我测试过很多次打包成exe在其他电脑上运行都是没有问题的,但是在群里跟他人讨论的时候他们说在某些情况还是会遇到问题,比如用到OpenGL库,一些第三方库如opencv等这样打包运行时就会出问题,我估计是
qt自带的windeployqt.exe这款工具有些库还是找不到的,尤其是外部的库,也就是说还是有一定的局限性,当然这只是我的猜测,我现在还没遇到,等遇到这种情况的时候我会再去寻找解决方法的,到时会继续更新这篇博文。

qt5.5程序打包发布以及依赖【转】的更多相关文章

  1. QT5的程序打包发布(将QT5的工程项目打包成一个exe程序)

    最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了. 首先,先介绍自己使用的环境.我使用的QT版本是 ...

  2. Qt5 项目程序打包发布 详细教程

    概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装文件. ...

  3. Qt 程序打包发布总结

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  4. Qt程序打包发布方法(使用官方提供的windeployqt工具)

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

  5. Qt开发北斗定位系统融合百度地图API及Qt程序打包发布

    Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1.上位机介绍 最近有个接了一个小型项目,内容很简单,就是解析北斗GPS的串口数据然后输出经纬度,但接过来觉得太简单,就发挥了主观能动性,增加 ...

  6. QT5.4 计算器程序 打包&发布,解决dll的最新解决方案

    QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...

  7. QT5.4 计算器程序 打包&发布,解决dll的最新解决方案(图文并茂,很清楚)

    QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...

  8. 4-QT的程序打包发布(将QT5的工程项目打包成一个exe程序)

    https://blog.csdn.net/windsnow1/article/details/78004265 最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台win ...

  9. QT程序打包发布

    本来感觉这是一个简单的操作,今天看见群里有人在问这个问题,他说网上查了很多都不成功,突然就想把自己初学的时候记录一下! 题目谢了QT程序的打包发布,那就是两步骤:打包+发布! 注释:这篇博文用的是Qt ...

随机推荐

  1. Django模版语言 格式化显示 后台datatime()时间

    Django模版语言 格式化显示 后台datatime()时间 场景描述:

  2. Zabbix监控redis status

    概述 zabbix采用Trapper方式监控redis status 原理 redis-cli info命令得到redis服务器的统计信息,脚本对信息分两部分处理: (1)# Keyspace部分为Z ...

  3. 疯狂JAVA16课之对象与内存控制

    java内存管理分为两个方面:内存分配和内存回收.这里的内存分配特指创建java对象时JVM为该对象在对内存中所分配的内存空间.内存回收指的是当该java对象失去引用,变成垃圾时,JVM的垃圾回收机制 ...

  4. 机器学习笔记----Fuzzy c-means(FCM)模糊聚类详解及matlab实现

    前言:这几天一直都在研究模糊聚类.感觉网上的文档都没有一个详细而具体的讲解,正好今天有时间,就来聊一聊模糊聚类. 一:模糊数学 我们大家都知道计算机其实只认识两个数字0,1.我们平时写程序其实也是这样 ...

  5. R 单变量重命名与删除

    单变量重命名 b = rename(b,c(target="flag")) 单变量删除    b = b[,names(b)!='age'] 或者 b[,"age&quo ...

  6. Nuget Command Console

    Get-Package -ListAvailable -Filter contracts 命令行 注意选择 程序包源

  7. 网络抓包wireshark(转)

    转自 网络抓包wireshark   抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经 ...

  8. adobe premiere pro cc2015.0已停止工作 解决办法

    adobe premiere pro cc2015.0已停止工作 一直报错 解决办法就是: 删除我的电脑  我的饿文档下的 Adobe下的Premiere Pro文件夹 现象就是怎么重新安装都不管用P ...

  9. 全文检索解决方案(lucene工具类以及sphinx相关资料)

    介绍两种全文检索的技术. 1.  lucene+ 中文分词(IK) 关于lucene的原理,在这里可以得到很好的学习. http://www.blogjava.net/zhyiwww/archive/ ...

  10. asp.net mvc使用log4gNetz

    1. 下载安装log4gNet 2. 将 \bin\net\4.0\release\log4net.dll 复制到你的项目中 . 3. 将log4net.dll 添加引用到你的项目中. 4. 添加如下 ...