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程序安装包制作 ...
随机推荐
- 洛谷P4095新背包问题
传送 这道题最最暴力的方法就是对于每一个询问都跑一边多重背包问题,但显然q不会那么友好的让我们用暴力过掉这道题. 考虑优化.我们可以先把裸的多重背包搞成二进制优化后的多重背包.但是复杂度依然无法接受. ...
- python插件快速安装
windows下安装python插件没有linux那样方便. 可以先安装easy_install.我的是win64 下载地址 直接下载py文件运行,将对应目录添加到环境变量,我的是D:\dev_t ...
- 【python】将json串写入文件,并以json格式读取出来
写json--json.dumps 代码: import json #要写入文件的json串(dict格式) result ={', 'https://appapi.xxxx.com/appapi/b ...
- NIO组件之buffer
Java NIO指的是new IO ,相对OIO,也称non-blocking IO,对应四种基本IO类型中的IO多路复用,主要有有三大核心组件,Channel(管道),Buffer(缓冲区),sel ...
- web可拖动控件js
先下载:http://code.jquery.com/ui/1.10.3/jquery-ui.js $('.i-i-yuan').draggable({ containment: '#app'//可通 ...
- Python学习之==>面向对象编程(一)
一.面向对象与面向过程 面向对象与面向过程是两种不同的编程范式,范式指的是按照什么方式去编程.去实现一个功能.不同的编程范式本质上代表对各种不同类型的任务采取不同的解决问题的思路. 1.面向过程编程 ...
- docker运行haproxy 自动生成配置
#根据参数,shell自动生成haproxy配置 #为方便部署,特意做了个haproxy镜像 #Haproxy run as docker #运行实例 run #!/bin/bash #docker ...
- oracle-参数文件的备份与还原
oracle-参数文件的备份与还原 参数文件是实例启动到nomount状态的必要条件,规定了实例的行为特征,位置跟操作系统相关,一般unix类的系统在$ORACLE_HOME/dbs目录下 (wind ...
- Spring获取request、session以及servletContext
获取request: HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestA ...
- 学了一天的golang从入门到放弃
Google的go就是个二货,不实用,它最多只能和c比简单.low!