【前言】

  业务需求将qt程序打包成win可执行文件。咱是做linux的,奈何用的麒麟系统,程序运行在win,好嘛,重新在win qtcreator编译后打包呗。

【目标】

  1.给qt程序添加一个图标。

  2.qt程序打包。

  3.将打包后的qt程序做成单个文件。

【正文】

  1.给qt程序添加一个图标:

    首先确定程序可以正常编译,运行。

    然后在项目代码目录下放一个xxx.ico文件,图片不要太大32*32刚好。

    再然后打开项目的.pro文件,在里面加入RC_ICONS = xxx.ico。

    最后编译程序运行无误,即可在代码同级目录的生成目录下找到带图标的可执行文件。

  2.qt程序打包:

    2.1.将要打包的程序现在qt下用Release模式下编译和运行一次。//修改成release模式即点击qt左下角执行键上面的小电视里面选择(小电视默认选择debug)。

    2.2.找到程序的exe(在代码同级目录的build-xxx-Desktop-Release里面),单独复制到一个文件夹比如D盘新建一个xxx文件夹。

    2.3.新建一个bat文件,记事本打开输入内容cmd /k "cd /d [windeployqt.exe的路径] && windeployqt.exe [要打包的exe文件的路径](这个exe文件的路径是自己新键的文件的路径)。

    例如: cmd /k "cd /d C:\Qt\Qt5.5.1\bin\ && windeployqt.exe D:\xxx\xxx.exe,然后双击xxx.bat文件变回打开终端进行拷贝文件。

    2.4.这时进入D:\xxx文件夹,点击xxx.exe如果程序正常运行则说明打包完成,将xxx文件夹放到任意一台win上都可以运行。如果弹出警告xxx.dll就去qt程序目录下去找并拷贝回来。直至运行程序。

  3.将qt程序打包成单个文件:

    3.1.打包单个文件需要用到一个打包工具Enigma Virtual Box。//自己在百度上随便下一个就行。

    3.2.打开下载的工具包点击可执行程序进行操作。

    3.3.点击浏览按钮,选中你的xxx.exe文件,会在你的exe相同路径下出现xxxCale.exe文件。这就是你最后的包,你也可以通过后面的浏览修改他的位置。

    3.4.点击左下角的增加按钮,选择第二个添加目录树,路径为相对路径,将你的xxx文件夹选中。//这会列出你的程序需要的资源的清单。

    3.5.点击右下角的文件选项按钮,选择启动文件虚拟化和压缩文件。//这个会让你打包后的文件非常小,1/2以内。

    3.6.最后点击最右下角的执行封包按钮。

    3.7.封包结束,在你指定的文件夹或xxx.exe下会出现一个xxxCalc.exe文件。把文件拷贝到桌面执行看程序是否有误,无误则可发给其他人使用。

【后记】

  winqt程序打包也就如此简单,也许是没涉及到可安装吧。因为需求原因,可安装程序需要设置版本号什么的很麻烦就没弄。但这样也足够了。个人亲测可以使用。

在执行教程过程中有任何问题,欢迎留言或评论哦。

  

  

最新文章

  1. 酷炫放大镜canvas实现
  2. vuex2.0.0爬坑记录 -- mutations的第一个参数state不能解构
  3. magento 备份
  4. (24)odoo中模型标识汇总
  5. 理解extern char s[100]与extern char *s
  6. 全栈project师的悲与欢
  7. navicat连接oracle时发现 ORA-12737 set CHS16GBK
  8. android学习笔记之GridView的使用
  9. 让你的Javascript提升70%性能
  10. React脚手架create-react-app
  11. React native 中 SectionList用法
  12. LeetCode算法题-Maximum Depth of Binary Tree
  13. php 日期处理 DateTime
  14. Dom捕捉事件和冒泡事件-原理与demo测试
  15. 因为强行关机, 而导致的fedora23 不能重新启动, 卡在开机logo那里的 修复 解决方案
  16. Ionic3--数据存储
  17. 26-hadoop-hbase简介
  18. Quartus II 破解教程—FPGA入门教程【钛白Logic】
  19. HBase 架构与工作原理1 - HBase 的数据模型
  20. Java 之常用API(一)

热门文章

  1. AlwaysOn 执行备份任务
  2. 02(d)多元无约束优化问题-拟牛顿法
  3. 《Python 3网络爬虫开发实战中文》超清PDF+源代码+书籍软件包
  4. STM32F072从零配置工程-建立工程文件
  5. http://www.jianshu.com/p/2dd54ec0bb43 程序员纪录片
  6. SpringBoot2.0集成WebSocket,实现后台向前端推送信息
  7. [小米OJ] 6. 交叉队列
  8. 2017day1
  9. python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05
  10. C#中线程间操作无效: 从不是创建控件 txtBOX 的线程访问它。