程序打包教程

QT5程序打包问题

问题描述:为了方便不同电脑之间QT程序的移植,简单介绍QT5打包方式
打包工具:QT5自带的windeployqt + Engima Virtual Box

windeployqt 使用步骤

  • 打开一个QT程序,以release方式运行
  • 打开release生成的文件夹,找到该目录下的.exe程序。此时点击是运行不成功的。因为缺少QT必要的库文件。将这个.exe文件拷贝出来,创建一个单独的文件夹,命名为testrelease,放在这个文件夹下
  • 在win10下,搜索QT,如下图所示,打开Qt 5.5 64-bit for Desktop (MSVC 2013)


    捕获.PNG
  • 命令行进入刚刚创建的testrelease文件夹下,之后输入命令 windeployqt xxx.exe, 'xxx'代表exe的名称
    *这是我们看到程序目录如下所示


    捕获.PNG
  • 除此之外还需要将本exe运行需要的其他库拷贝到此文件夹下,这些库与程序本身有关,比如有些可能需要OpenGL的库、有些可能需要SDL的库等等。windeployqt 只是把QT工程依赖的原生库拷贝出来,并不能拷贝用户自写QT程序依赖的库函数。
  • 完成以上步骤后,点击exe可以正常运行,如果不能,则代表某些依赖库没有拷贝。

Engima Virtual Box使用步骤

  • 完成上述步骤之后,打开Engima Virtual Box,Engima Virtual Box的下载请自行百度。


    捕获.PNG
  • 按照上图的示意,添加路径和文件如下图。文件可以托选,选择所有文件后,直接拖入界面框内。注意是要所有文件和文件夹全部拖进。示意图如下:


    捕获.PNG
  • 然后点击Process开始打包。
  • 打包完成后,就可以去程序打包后的路径点击运行了。

优缺点分析

  • 优点:操作流程简单易行
  • 缺点:如果想在其他电脑运行此工程,需要将整个打包后的文件夹(包括exe和库)全部压缩再打包发出,不方便。

采用NSIS打包程序

问题描述:采用windeployqt的打包方式不够方便,接下来介绍将exe打包成软件安装包的方法
打包工具:NSIS(Nullsoft Scriptable Install System)+NIS Edit

打包步骤

  • 安装NSIS(Nullsoft Scriptable Install System)和 NIS Edit

  • 打开NIS Edit,点击文件,选择新建脚本:向导(W),如下图所示


    捕获.PNG
  • 点击下一步,输入应用程序名称,版本,出版人,网站等等基本信息


    捕获.PNG
  • 点击下一步,此处采用默认选项,也可做出修改,安装程序语言此处以English为例,也可选择其他


    捕获.PNG
  • 点击下一步,只需修改自定义的授权文件,可自己新建一个txt或rft文件并写入一些软件授权信息或其他信息(文件内容在安装过程中会显示出来并让用户选择接受协议),其他保留默认设置。选择下一步


    捕获.PNG
  • 这一步是最关键的。将下图中 蓝色框内的"c:\path\to\file\AppMainExe.exe", c:\path\to\file\Example.file 都删除,允许用户选择要安装的组件。最后点击上方的树形图按钮(红色框)
    [图片上传中...(捕获.PNG-41a08e-1528423949845-0)]


    1528423647(1).png
  • 点击树形目录,这里选择要发布的*.exe程序所在目录(最好将发布程序时所有用到的文件均拷贝到该目录下,都放到一个目录下),并选中"包含子目录"以及"单独添加每个文件(如果有)" ,其余保留默认设置。 然后选择确定,加载完目录下所有文件后,点击下一步


    捕获.PNG
  • 可保留默认设置,选择下一步


    捕获.PNG
  • 在图中只需要修改自定义的卸载程序图标就可以了,其他项保留默认设置,选择下一步


    捕获.PNG
  • 选择“保存脚本”,“转换文件路径到相对路径”,“编译脚本”,然后用NIS Edit进行编译,执行打包过程,最后生成成功,点击Setup.exe运行即可安装。


    捕获.PNG
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 1《等待》 风扯掉最后一片树叶 无情又苍凉 于是月下又一圈年轮凑成等待的音符 2《回忆》 你走后 回忆变得昂贵 我...
    余不桑阅读 229评论 0 6
  • 旁白: 干部推荐是非常敏感的话题。某些区域官场的政治生态正处于三资时代,三资指的是: 资格,资历,资源,这三资是一...
    就这也行阅读 343评论 5 11
  • 百无聊赖刷豆瓣广播的时候,看到一条《零秒思考》的书评, 题目不但抓人眼球“为什么他的文章总是有料可写?而你没有……...
    林中泉阅读 414评论 0 0