Qt应用程序的发布
1 Windows平台上的应用程序发布
- Windows发布工具
windeployqt.exe是Qt自带的Windows平台发布工具。windeployqt.exe文件在Qt的bin目录下,Qt的每一个编译器版本均有独立的目录,在我的计算机上安装了minGW32,minGW64,MSVC2017 32bit,MSVC2017 64bit这四个编译器版本。如下图为Qt的命令行,可以看到有四个版本的编译器。

注意:应用程序由哪个编译器生成的,就应该用哪个版本的windeployqt生成发布文件
在Qt的命令行窗口使用windeployqt程序,其语法如下:
windeployqt [options] [files]
其中options是一些选项设置,一般使用缺省设置即可,files是需要生成发布文件的应用程序文件名。
以下为发布步骤
- 以Release的方式编译生成exe程序。
- 生成的程序运行正常之后,找到项目的生成目录,比如项目源码路径:E:\QT\MVC,它的项目生成目录是E:\QT\MVC\build-XImageEdit-Desktop_Qt_5_12_2_MinGW_32_bit-Release,进入这个文件夹,再进入它的子文件夹 release 里面,找到XImageEdit.exe,
- 将这个exe复制到一个新的单独的文件夹里用于发布,比如存到 E:\QT\hello 文件夹里面。
- 然后从开始菜单打开 Qt 命令行,输入命令 :cd /d E:\QT\hello 然后使用 windeployqt 工具命令:windeployqt XImageEdit.exe

- 然后可以在 E:\QT\hello 文件夹里看到 windeployqt 工具自动复制的插件文件夹和dll文件,qm文件。这时候得到的就完整的 exe 程序发布集合,依赖关系都解决好了。把E:\QT\hello文件夹打包就可以发布了,不用自己一个个找dll文件了。E:\QT\hello文件夹里的qm文件是多国语言翻译文件,不需要可以删了,其他的都保留。

注意
- 即便在开发应用程序的计算机上测试发布程序没有问题,也应该将发布文件目录复制到一个没有安装Qt的计算机上测试应用程序是否能正常运行。
- 如果使用MSVC编译的,一般是需要包含Visual C++的运行库,我使用MSVC编译发布的程序,在一台没有安装Qt和VS的电脑上做实验,使用MSVC编译发布的程序不能正常运行,提示缺少一些.dll库,而MinGW编译发布的程序是可以正常运行的。
参考资料:
https://www.cnblogs.com/baby0814/p/8568727.html
Qt应用程序的发布的更多相关文章
- Linux下Qt应用程序的发布(使用LDD命令查看所有依赖的库文件)
最近一直在学习Qt,用Qt写了一个程序,但是不知道怎么发布,网上说的都是在windows下怎么发布Qt应用程序,但是,在windows下Qt应用程序依赖的库文件与linux下的名字不同.于是,我就想到 ...
- Qt Quick程序的发布
要将程序发布出去,首先需要使用release方式编译程序,然后将生成的.exe可执行文件和需要的库文件发在一起打包进行发布. 要确定需要哪些动态库文件,可以直接双击.exe文件,提示缺少那个dll文件 ...
- Qt之新手打包发布程序
工具:电脑必备.QT下的windeployqt Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无 ...
- Qt 程序打包发布总结
1. 概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...
- Qt开发北斗定位系统融合百度地图API及Qt程序打包发布
Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1.上位机介绍 最近有个接了一个小型项目,内容很简单,就是解析北斗GPS的串口数据然后输出经纬度,但接过来觉得太简单,就发挥了主观能动性,增加 ...
- Qt之程序发布以及打包成exe安装包
一.简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工 ...
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...
- 【Qt开发】Qt应用程序发布封装
问题:在使用Qt5.3.2编写程序并release,文件夹中已经添加了必要的dll,但在其他机子上运行程序失败,出现了下面的情况: 解决方法一:在C:\Qt\Qt5.3.2\5.3中进入mingw48 ...
- Windows下程序打包发布时的小技巧
一.背景 Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作 ...
随机推荐
- MYSQL,分别用一条语句交换两列的值与两行的值
测试表: CREATE TABLE `test` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, ` DEFAULT CHARSET=utf8 ...
- Monkey测试:Monkey的简单使用
Monkey是Android SDK提供的一个命令行工具,可以简单方便的发送伪随机的用户事件流,对Android APP做压力(稳定性)测试.主要是为了测试app是否存在无响应和崩溃的情况. 一.环境 ...
- Spring MVC的RequestContextHolder使用误区
JShop简介:jshop是一套使用Java语言开发的B2C网店系统,致力于为个人和中小企业提供免费.好用的网店系统. 项目主页:http://git.oschina.net/dinguangx/js ...
- Intellij IDEA 常见问题
右击项目时,没有 Java Class,只能创建其他文件 IDEA 还没有将这个项目识别为 Maven 项目时,会出现这种情况.此时右键无法创建类. 解决办法: 手动为 IDEA 指定项目类型:如果编 ...
- 应用安全 - Java Web 应用 - Confluence - 漏洞汇总
CVE-2019-3395 Date: -- 类型: SSRF 影响范围: Confluence 1.*.*.*.*.3.*.*.4.*.*.5.*.* Confluence 6.0.*.1.*.6. ...
- python+selenium模拟键盘输入
from selenium.webdriver.common.keys import Keys #键盘导入类 --------------------------------------------- ...
- Vim常用的功能命令
一.编辑 查看行号 :set nu 删除一整行 dd 删除1到10行 :1,10d 删除所有内容 dG 当前行下插入一空行 o 撤销改动 u 查看当前行信息 ...
- Java基础语法--IDEA快捷键
Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ ...
- Java第五周作业+总结
实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 1.已知字符串:"this is a test of java".按要求执 ...
- Java——HashMap使用Demo
package map; import java.util.Collection; import java.util.HashMap; import java.util.Set; public cla ...