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应用程序的发布的更多相关文章

  1. Linux下Qt应用程序的发布(使用LDD命令查看所有依赖的库文件)

    最近一直在学习Qt,用Qt写了一个程序,但是不知道怎么发布,网上说的都是在windows下怎么发布Qt应用程序,但是,在windows下Qt应用程序依赖的库文件与linux下的名字不同.于是,我就想到 ...

  2. Qt Quick程序的发布

    要将程序发布出去,首先需要使用release方式编译程序,然后将生成的.exe可执行文件和需要的库文件发在一起打包进行发布. 要确定需要哪些动态库文件,可以直接双击.exe文件,提示缺少那个dll文件 ...

  3. Qt之新手打包发布程序

    工具:电脑必备.QT下的windeployqt Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无 ...

  4. Qt 程序打包发布总结

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  5. Qt开发北斗定位系统融合百度地图API及Qt程序打包发布

    Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1.上位机介绍 最近有个接了一个小型项目,内容很简单,就是解析北斗GPS的串口数据然后输出经纬度,但接过来觉得太简单,就发挥了主观能动性,增加 ...

  6. Qt之程序发布以及打包成exe安装包

    一.简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工 ...

  7. Qt程序打包发布方法(使用官方提供的windeployqt工具)

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

  8. 【Qt开发】Qt应用程序发布封装

    问题:在使用Qt5.3.2编写程序并release,文件夹中已经添加了必要的dll,但在其他机子上运行程序失败,出现了下面的情况: 解决方法一:在C:\Qt\Qt5.3.2\5.3中进入mingw48 ...

  9. Windows下程序打包发布时的小技巧

    一.背景 Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作 ...

随机推荐

  1. always_populate_raw_post_data

    Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a futu ...

  2. jenkins不展示set Build Description Setter插件

    问题描述: 1.jenkins 已下载 set build descripteion ,并且配置过,可以在构建历史中展示就用二维码 2.问题:构建历史中不展示二维码了,如图: 总是排查: 1.首先想到 ...

  3. Delphi 快速检测是否联网 判断网线是否拔开。 但是不能判断是否能上网

    https://blog.csdn.net/chelen_jak/article/details/50204145 Delphi 快速检测是否联网 2015年12月07日 12:01:26 chele ...

  4. 【Hibernate】---【注解】多对多

    一.核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-con ...

  5. shell基础命令

    什么是脚本? 脚本简单地说就是一条条的文字命令(一些指令的堆积),这些文字命令是可以看到的(如可以用记事本打开查看.编辑). 常见的脚本: JavaScript(JS,前端),VBScript, AS ...

  6. is_enabled()检查元素是否可以编辑 如文本框

    演示代码from selenium import webdriverdriver = webdriver.Firefox()driver.get("https://www.baidu.com ...

  7. 【MM系列】SAP 物料凭证增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]在SAP里查看数据的方法   前言部 ...

  8. Centos7安装protobuf3.6.1

    简介 最近学习go语言,需要安装protobuf,但是网上的教程很多都不太适用于centos7 的系统.现在总结下protobuf在centos7下的安装教程. protobuf是Google开发出来 ...

  9. [Git] 018 冲突在所难免,需要巧妙化解

    0. 回顾 [Git] 005 初识 Git 与 GitHub 之分支 中"4.2 情形二"的 9 提及了"解决冲突" 当时没有展开,这回详谈 我这回反其道而行 ...

  10. [19/09/18-星期三] Python中的序列

    一. # 第四章 序列(视频58-76) ## 列表(list) - 列表是Python中的一个对象 - 对象(object)就是内存中专门用来存储数据的一块区域 - 之前我们学习的对象,像数值,它只 ...