• 做一个幸福的人,读书,旅行,努力工作,关心身体和心情。
  • 不管有没有人爱,也要努力做一个可爱的人。不埋怨谁,不嘲笑谁,也不羡慕谁,阳光下灿烂,风雨中奔跑,做自己的梦,走自己的路。

Qt程序打包发布

Qt lcq 3年前 (2015-06-11) 574次浏览 1个评论

当我们把程序在开发工具调试开发完成之后,剩下的最后一步就是打包发布。这篇文章主要介绍如何查找可执行程序依赖的dll文件以及将打包发布。

查找可执行文件所包含的dll文件

开发工具编译的时候,默认的都是动态编译。当然你也可以使用静态编译,静态编译之后虽然就是一个exe程序可直接运行,但是静态编译需要的时间很长(动辄两三个小时),打包后的可执行文件以后只能全量更新,而且还有授权方面的问题(这个方面我也不太懂啦,具体自己Google Qt方面的授权,链接),所以我们一般使用动态编译。动态编译后的可执行文件,我们就必须要找出所依赖的dll文件。

我找到了两个用来找动态编译的可执行程序所依赖的dll文件。一个是Dependency Walker,这个软件根据我的体验来看的话,不是很好用。首先它把要找的dll名字全部改为写为了大写。然后反正我是不习惯找。后面我找了一款比较简单的软件Process Explorer,下面主要介绍如何使用Process Explorer查找dll文件。

第一步:打开Process Explorer之后,请将DLLs的选项勾上。具体操作View–>Lower Pane View–>DLLs。如下图所示:

第二步:在开发工具上运行可执行程序。注意,记得在Release模式下编译哦,这样就能减少你发布程序的体积。

第三步:在Process Explorer下面找到你在开发工具下面运行的可执行程序。具体可看下图。有个小技巧:Path是可以排序的,你点击一下Path,关于Qt方面依赖的dll文件都在一起了。方便你查找。

第四步:当然是将上面依赖的dll文件都拷贝出来呗。你要是怕找错,在Path的某个路径下面点右键–>Properties…–>Explore它会自动跳转到所在的dll路径,然后你再Ctrl+C,Ctrl+V就不会出什么错误了。

好了,经过上面的步骤,我们把拷贝出来的dll跟开发工具生成的dll文件放到同一个文件夹下面,这个应用程序终于可以单独运行了。具体Qt的一些必须的dll文件作用可以参考这个链接。这个时候,你可以把这个文件用rar压缩,打包发给别人使用。这就是所谓的绿色免安装文件了。。。呵呵。但是我们的最终目的是要把可执行文件已经依赖的文件打成一个安装包。

程序打包发布

程序打包发布我用过两个打包程序,一个是Inno Setup,这个软件做的第一个用MFC写的软件就是用这个打包的。官网下载的打包软件不提供汉化的。我在网上找了一个汉化的链接,版本为5.5.5的。用起来还是挺简单的,具体的用法可查看这个链接,其实也不要看链接啦。汉化的版本你跟着程序的提示一步一步来即可。因为我不打算使用Inno Setup这个工具来打包软件,所以我在这里不详细介绍了。

另外一个要详细介绍的打包程序是NSIS,具体为什么要使用这个打包软件,主要是据说扩展性要比Inno Setup好。下载完NSIS之后,还需要一个NSIS的HM NIS Edit脚本编辑器。这两个正常安装完成之后,使用HM NIS Edit按照向导即可以按照如下图示生成一个简单的脚本了(注意:由于HM NIS Edit没有在所有程序里面,需要自己去找他的安装目录,所以你在安装这个软件的时候要记住一下他的安装目录,否则等下你找不到了)。

第一步:新建一个向导脚本。

第二步:点下一步到“应用程序信息”界面。按照你的需求填上信息。应用程序网站如果填了它会生成一个web链接。如果没有可以不填。

第三步:“安装程序选项”界面。安装程序图标是指打包之后程序的显示图标。如果有用自己的,没有回提供默认的。安装程序文件是打包后的文件名。安装程序默认给你勾选上了“English”,如果没有什么国际化的需求,我们去掉“English”只选“SimpChinese”吧。其他的默认即可。

第四步:授权文件自己改一下即可。其他的都用默认的吧。

第五步:“应用程序文件”界面。这个比较重要。主要是把一些需要打包的一些文件勾选进来。左边是用来新建组的。如果你的功能只有一个,默认即可。如果你的功能比较多,可以新建几个组。我们在安装某些软件的时候有些可选项,就是这么来的。

第六步:没什么好说的,看你需求吧。一般默认即可。

第七步:安装程序之后软件的一个提示等等。其中参数我想是软件启动之后传给main函数的参数吧。。。我没试,我直接使用默认的。

第八步:默认默认,没什么好说的。

第九步:勾选保存脚本吧。这样以后你只要打开这个脚本就可以了。

好了,经过这几个步骤之后,一个打包程序的脚本就生成了。这个时候,你按Ctrl + F9,NSIS就将你的程序打包成了一个安装应用程序。这个程序生成在你打包的目录下面。如果有特殊的要求,那么你就需要学习NSIS方面的脚本知识了。

上面所使用的软件,我全部上传到了我的百度云盘(链接)。需要的可自行下载。


参考资料:

1、Qt之打包发布(NSIS详解)

2、NSIS安装制作基础教程

3、用Inno Setup对Qt程序建立安装包


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Qt程序打包发布
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址