当前位置:首页 > 技术心得 > 正文内容

Qt打包发布程序

xjtudll16年前 (2010-03-31)技术心得73440

Qt发布程序有两种方式,静态编译和动态编译。静态编译操作繁琐,东拉西扯要N长时间,所以我选择的是动态发布,动态发布有个缺点,就是要附加多个dll文件,传输极为不便,如果能搞成单文件就比较爽了。

本文就是讲述如何将多个文件打包成一个exe文件。

当然,你首先要将Qt编译设置成Release模式,将Release文件夹中的exe文件拷贝出来,并用微软的Dependency Walker查看该exe文件需要哪些dll需要在完全没有装QT的系统上测试发布的程序有没有DLL依赖问题),并将其拷贝出来,将所有文件都放在同一个文件夹。搞定这些之后,就可以开始文件打包了。

文件夹打包需要几个软件,下面将一一讲述。

1ASPACK

Qt本身所带的dll文件比较大,可以先用ASPACK压缩一下。mingwm10.dllQtCore4.dlllibgcc_s_dw2-1.dllQtGui4.dlldll文件经过ASPACK压缩后可从十多M变为5M左右,大大降低了程序大小。
   

2FilePacker

此软件可以从网上搜索下载。
  

 

按照提示,用这个软件一步步即可。可设置解包后运行文件,如图所示。

 



    然后点下一步,使用默认设置即可。

在设置临时解压路径的时候需要注意一下,最好是设置在临时文件夹,这样重启电脑后,这些解压的文件就自动删除了。如下图所示。
   
   

  

唯一美中不足的就是自定义图标必须32*32大小,256色。当然,你可以找个ico图标编辑软件,编辑之后使之满足条件即可。

软件打包后就可以发布了。

还有个软件MoleBox也可以将文件夹打包,但是这个软件不能自定义图标,所以用起来就不爽了。

文件夹打包从根本上来讲应该就是压缩文件,这种压缩文件解压后能够自动运行压缩包中的文件,当然用WinRAR也能实现上述功能,只不过FilePacker操作更为简单,傻瓜式操作。打包后的exe文件,点右键时,很明显的看到能够用WinRAR操作。因此,文件很多的时候可能会打开较慢(文件多,解压时间长)。

以上提到的软件都是绿色软件。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/63/

标签: Qt
分享给朋友:

“Qt打包发布程序” 的相关文章

再谈无线网络受限——无法获得IP地址

前面曾经写了一篇[无线网络连接受限]的解决办法(http://www.xjtudll.cn/Exp/66/),本次再谈一些这方面的内容。上次无线网络受限导致的结果就是:无线网卡无法获得IP地址,即便信号很好,也一直连不上。上次最后的解决办法是用WEP加密方式,后来在网上看到WPA2-PSK加密方式更...

把存储过程结果集插入临时表

--使用sp_helpserver 显示可用的服务器。  exec sp_helpserver  --打开服务器的"data access"属性  exec sp_serveroption '服务器名',...

利用Multisim设计数字滤波器

利用Multisim设计数字滤波器

【工具】->【Circuit Wizards】->【Filter Wizard】  可以设计低通,高通,带通,带阻,滤波器可以选是无源还是有源。不过这玩意儿还是没专业的滤波器设计软件好用。...

Altium Drag妙用——批量添加引脚(PIN)延长导线

Altium Drag妙用——批量添加引脚(PIN)延长导线

使用Altium画单片机相关的原理图的时候,因为要对单片机的引脚添加网表(Netlist),所以必然会用导线将PIN延长,然后加网表。要达到的效果如图所示: 最笨的办法就是:一根线一根线画。这样的话效率很低,典型的浪费时间。有没有更高效的办法呢?答案是肯定的,这就是我标题里提到的Drag的功效。...

Android的Service中弹出窗口解决方法

参考资料: http://www.cnblogs.com/fbsk/archive/2011/12/28/2304523.html http://blog.csdn.net/djun100/article/details/23756681 问题: 我们在使用Service时,经常会碰到这样的情况,比...

如何在fragment里启动service

参考资料:http://stackoverflow.com/questions/13007355/how-to-start-service-from-fragments 问题: 如果在fragment里直接用startService,那么编译将不会通过。 如下代码在activity里是可以正确使用的...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。