玩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. 建模前的数据清洗/ETL(python)

    1. 读取数据 data= open('e:/java_ws/scalademo/data/sample_naive_bayes_data.txt' , 'r') 2. 把数据随机分割为trainin ...

  2. 通过维基API实现维基百科查询功能

    通过英文维基的免费API,可以实现对维基百科的搜索查询或者标题全文查询等,尝试了一下通过title实现全文查询,返回的结果是wikitext格式,暂时不知道该如何应用,所以仅实现了查询功能,可以返回最 ...

  3. 魅族mx4 pro连电脑,adb无法获取devices信息解决

    根据 flyme 的文档: K:\MX4 USB Reference Manual\简体\MX4_ADB_参考说明书.txt 操作如下: 二.Windows XP中文环境1.  建立或修改C:\Doc ...

  4. C#基础:飞行棋游戏

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. github学习

    http://1ke.co/course/194 http://www.jianshu.com/p/0fce531dba31 http://www.liaoxuefeng.com/wiki/00137 ...

  6. oracle 12c 加入系统服务

    1修改oratab文件 vi /etc/oratab #把后台一行的N改为Y db01:/usr/oracle/app/product/11.2.0/dbhome_1:Y 2如果安装时.bash_pr ...

  7. CenterOS 7 常用命令

    1.防火墙开放端口      1.1 开启端口        # firewall-cmd --zone=public --add-port=80/tcp --permanent          1 ...

  8. 【IDEA 2016】intellij idea tomcat jsp 热部署

    刚开始用IDEA,落伍的我,只是觉得IDEA好看.可以换界面.想法如此的low. 真是不太会用啊,弄好了tomcat.程序启动竟然改动一下就要重启,JSP页面也一样. IDEA可以配置热部署,打开to ...

  9. CJCMS系列--demo代码篇

    CJCMS之前写了不多的文章,但是一直没有上代码,也许代码写得很乱很差,但是我觉得总得有个开始,持续改进.作为一个喜欢分享的程序员,我决定分享一下. 前面文章中的结构比较全,而此次我给出的demo,没 ...

  10. Boost正则表达式的编译与使用方法集

    下载boost 在boost官网上下载任何版本都可以www.boost.org . 将boost压缩包解压到D盘目录下 (我下载的是boost_1_54_0.zip),目录为D:\boost_1_54 ...