Windows如何打包Qt程序
很多Qt爱好者想发布自己的Qt软件,但却发现在其他没有安装Qt SDK的机器上无法运行,这就是本文想要说明的问题。现在网上大部分软件都要发布自己开发的应用程序,都会打包到exe文件中,待安装完exe文件后,就会生成很多小文件,其实原理都一样,只是各自使用的打包工具不能罢了。本文主要介绍在Windows平台如何打包自己的Qt程序,相对比较简单的,这并没有正规软件的向导流程。
在Windows系统中,要打包Qt程序,主要会用到3个工具包,分别是:
1.hap-depends 查看软件的依赖库(*.dll)
2. ASPack 动态链接库压缩软件
2.filepack 软件的打包工具
这三个在网上都有下载地址,本人在这里提供:
下载地址:
hap-depends + ASPack+ filepack
本文以《CSDN博客下载器》软件为例,以下是一些打包程序的详细步骤:
1.使用hap-depends工具打开Qt应用程序

2.打开后,可以看到很多警告,那些警告(黄色问号)对应的库就是需要的动态链接库,到Qt的安装目录拷贝到应用程序的所在目录即可。
3.到Qt的安装目录,xx/Qt/4.8.0/bin,可以看到很多*.dll文件
4.这些都是Qt的动态链接库
5.将警告对应的dll文件拷贝到Qt程序目录
6.此时可以打开界面了,也能使用,但是在其他电脑是不正常的,因为程序中使用到了图片库,数据库驱动,以及播放视频库,需要使用这些插件。
7.Qt的plugins插件
8.将插件拷贝到程序的目录,原来在plugins的sqldrivers目录,拷贝到这里也文件夹名称必须保持一致。
9.程序启动,拷贝到其他电脑也可以正常运行了。
10.这是在压缩dll文件,大部分是可以,但有些会失败,所以在发布时,必须在多台电脑测试,从截图可以看到,原来的文件变成了以.bak结尾的,大小相差挺大。当然这一部不是必须的,因为后面的打包工具就可以压缩文件了。
11.开始打包Qt程序
12.这工具很简单,下一步就行,然后选择程序对应的目录。
13.选择要打包的可执行文件。
14.设置
15.变量列表:指该打包后的程序被打开时,将文件解压到什么位置,这可以选择不同的变量来看看结果,一般程序都是放到临时目录,所以就选择 "*Tempdir*"。可执行文件的输出目录随便都行,打包完后拷贝出来即可。
16.
17.创建
18.封包成功
19.打完包后,程序有8.03MB,如果太大,打包,不然每次执行都会重新解压,影响速度。
还有其他比较高级,比较复杂的程序打包工具,那些工具等以后要用到再去摸索。以上几个工具包都不需要积分,大家可以无限下载。
Windows如何打包Qt程序的更多相关文章
- Linux 打包QT程序到未安装QT的其他Linux主机下运行
昨天终于改好了一个开源但是用起来有问题的串口调试助手,想把它打包一下以后在其他电脑上也可以用. 找了网上的一个教程打包后,在本机上可以正常使用,但是移植到另一台上就出现缺少xcb的提示. 上网搜资料倒 ...
- Ubuntu下使用linuxdeployqt打包Qt程序
写了点Qt界面程序,然而发现很难移植到其他没有安装Qt环境的电脑上运行.查资料了解到,在windows上有windeployqt程序,linux上有linuxdeployqt可以帮助我们快速打包. 1 ...
- Qt程序打包成exe可执行文件图文教程(图文并茂,且用到了filepack)
很多Qt爱好者想发布自己的Qt软件,但却发现在其他没有安装Qt SDK的机器上无法运行,这就是本文想要说明的问题.现在网上大部分软件都要发布自己开发的应用程序,都会打包到exe文件中,待安装完exe文 ...
- 【最详细最完整】在Linux 下如何打包免安装的QT程序?
在Linux 下如何打包免安装的QT程序? 版权声明:嵌入式linux相关的文章是我的学习笔记,基于Exynos 4412开发板,一部分内容是总结,一部分是查资料所得,大家可以自由转载,但请注明出处! ...
- 关于在windows下部署发布QT程序的总结
原文请看:http://www.cnblogs.com/javaexam2/archive/2011/05/18/2632916.html 关于在windows下部署发布QT程序的总结 2008-06 ...
- Qt程序打包成exe可执行文件
很多Qt爱好者想发布自己的Qt软件,但却发现在其他没有安装Qt SDK的机器上无法运行,这就是本文想要说明的问题.现在网上大部分软件都要发布自己开发的应用程序,都会打包到exe文件中,待安装完exe文 ...
- Linux打包免安装的Qt程序(编写导出依赖包的脚本copylib.sh,程序启动脚本MyApp.sh)
本文介绍如何打包Qt程序,使其在没有安装Qt的系统可以运行. 默认前提:另外一个系统和本系统是同一个系统版本. 1,编写导出依赖包的脚本copylib.sh #!/bin/bash LibDir=$P ...
- VS IDE环境下,windows GUI(Qt MFC,win32)使用控制台实时打印调试信息
在工程属性的页面下,点击Build Events,在Build Events下点击Post-Build Event. 然后再Command Line里面输入以下命令: editbin /SUBSYST ...
- Qt程序Windows部署前打包方法
1.需求 很多公司都在使用Qt作为GUI库,在开发者的计算机上通常是利用配置PATH环境变量来实现调用Qt的DLL.然而当把开发后的软件直接部署在顾客方,顾客的计算机上并没有Qt的bin目录,所以并不 ...
随机推荐
- adb的logcat使用
预备:安装刷机精灵,实用工具->adb命令行 1. 对于多机设备,首先使用adb devices来获知设备名称: 2. 将log输出到电脑:adb –s [设备名称] shell logcat ...
- Hibernate中的一对多关系详解(2)
一对多的关系:例如,部门对员工,一个部门可以有多个员工 多对一的关系:例如,员工对部门,多个员工属于一个部门,并且每个员工只能属于一个部门 那么一对多.多对一在数据库中的是怎样表示的呢?好多话都不说了 ...
- Android的系统架构
转自Android的系统架构 从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层.应用程序框架层.系统运行库层以及Linux内核层,分别介绍如下: 1)应用程序层 ...
- Keil C中全局变量的使用
在KEIL C中,有多个源文件使用到全局变量时,可以在一个源文件中定义全局变量,在另外的源文件中用extern 声明该变量,说明该变量定义在别的文件中,将其作用域扩展到此文件. 例如:有以下两个源文件 ...
- jira 无法停止启动解决方案
Diagnosis To assess whether the service is still running, run ps -A | grep jira. Resolution To kill ...
- canvas——画板
注意部分: canvas的height和width不能再css中设定,应该在html中设定,否则会影响页面的分辨率. 效果图: 图1: 代码 css: #canvas{ cursor: crossha ...
- Jdk5.0新特性
增强for循环:foreach语句,foreach简化了迭代器. 格式:// 增强for循环括号里写两个参数,第一个是声明一个变量,第二个就是需要迭代的容器 for( 元素类型 变量名 : Colle ...
- 工作总结之动画与VR
一.Unity5的动画新特性: 1.animator controller默认就包含Any State.Entry.Exit三个状态 2.animator可以给每个动画片段添加脚本,该脚本继承 Sta ...
- leetcode shttps://oj.leetcode.com/problems/surrounded-regions/
1.从外围搜索O,深度搜索出现了 Line 35: java.lang.StackOverflowError Last executed input: ["OOOOOOOOOOOOOOOOO ...
- Bzoj 2818: Gcd 莫比乌斯,分块,欧拉函数,线性筛
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 3241 Solved: 1437[Submit][Status][Discuss ...