Qt 编程指南 9 软件打包

时间:2022-09-27 00:14:54

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑 里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。

平台

使用此一样例说明所有打包过程

  • VS2013
  • QT
  • Opencv2.4.1.3(64位)

集成开发环境 QtCreator 目前生成图形界面程序 exe 大致可以分为两类:
  Qt Widgets Application 和 Qt Quick Application。
下面分别介绍这两类exe 的发布方式。

1、Qt Widgets Application可执行程序发布方式

1.1 用 QtCreator 新建一个 Qt Widgets Application 项目,直接用默认的 QMainWindow 程序就可以了,项目名字假定是 Qt_Window。
然后以 Release 方式编译生成 exe 程序:

然后在工程目录生成的Release 文件夹下找到生成的 Qt_Window.exe

Qt 编程指南 9 软件打包

复制到桌面文件夹EXE下(随意选取路径)

Qt 编程指南 9 软件打包

1.2 打开命令行

Qt 编程指南 9 软件打包

进入刚才创建的EXE文件夹目录下

cd Desktop\EXE

然后使用windeployqt自动生成链接库工具, 执行

windeployqt Qt_Window.exe

Qt 编程指南 9 软件打包

之后看到,EXE文件夹下自动生成各种QT库文件

Qt 编程指南 9 软件打包

文件夹里看到 windeployqt 工具自动复制的插件文件夹
和 dll文件、qm文件。这时候得到的就完整的 exe 程序发布集合,依赖关系都解决好了。

2 如果还依赖了第三方库文件(例如Opencv)需要手动复制进来。

  • windeployqt 是QT自带的工具,所以只能访问QT本身路径包含的库文件,所以Opencv甚至VS2013的基本库要自己添加。

2.1:下载并安装 process explorer软件,因为可以用它来查看Qt_Window.exe用到了那些第三方库的dll.

Qt 编程指南 9 软件打包

2.2:打开 process explorer, 将菜单 View -> Lower Plane View -> Dlls  勾选上。再运行Qt_Window.exe。就可以在process explorer中查看第三方库的dll.如下图:

Qt 编程指南 9 软件打包

在其中我们发现 依赖的Opencv库有三个

Qt 编程指南 9 软件打包

双击第三方依赖库,弹出如下图对话框,点击Explore, 将相应的 dll 复制粘贴到 EXE文件夹中。完成所有第三方库的复制

Qt 编程指南 9 软件打包

将这三个库复制到EXE文件夹下

Qt 编程指南 9 软件打包

之后整体就可以复制到另外一台电脑,成功运行。

(默认另外一台电脑需要安装好VS2013,不然还要像添加opencv库一样,把VS调用的基本库添加进去)

如下图中VS2013调用的库

Qt 编程指南 9 软件打包

3 如果还有其他QT和VS2013以外的依赖库,类似第二步加添。

第二种界面EXE生成暂时用不到,待续

参看:http://tieba.baidu.com/p/3730103947?pn=1

4 生成安装文件

软件下载

https://www.sogou.com/sogou?query=setup2go&pid=sogou-wsse-91e50fe1e39af286

教程参考:

http://www.uzzf.com/news/31/1021_1.html

Qt 编程指南 9 软件打包

Qt 编程指南 9 软件打包

安装设置默认

Qt 编程指南 9 软件打包

系统需求设置最小安装空间

Qt 编程指南 9 软件打包

插入打包好的exe文件夹

Qt 编程指南 9 软件打包

Qt 编程指南 9 软件打包

Qt 编程指南 9 软件打包

设置快捷方式

Qt 编程指南 9 软件打包

选择要生成的快捷方式文件

Qt 编程指南 9 软件打包

设置快捷方式的图标

Qt 编程指南 9 软件打包

没有设置注册表

闪图自定义设置

Qt 编程指南 9 软件打包

外部工具 无设置

Qt 编程指南 9 软件打包

初始化参数文件 无设置

Qt 编程指南 9 软件打包

最后生成

设置输出路径+图标+安装包名字,点击建立

Qt 编程指南 9 软件打包

生成安装文件

Qt 编程指南 9 软件打包

安装测试

Qt 编程指南 9 软件打包

Qt 编程指南 9 软件打包

安装成功

Qt 编程指南 9 软件打包

运行

卸载

Qt 编程指南 9 软件打包

Qt 编程指南 9 软件打包的更多相关文章

  1. Qt 编程指南

    Qt 编程指南 持续关注一本正在编写的Qt编程指南,期待作者早日完成创作.

  2. Qt 编程指南 4 单行编辑控件

    从 Qt 设计师界面可以看到常用的 Qt 文本编辑和浏览控件,包括四个: 其中单行编辑控件 QLineEdit 和 普通文本编辑控件 QPlainTextEdit 都是针对最普通的 C++ 字符串编辑 ...

  3. Qt 编程指南 3 信号和槽沟通

    https://qtguide.ustclug.org/ 1 信号和槽 所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座.怎么说呢?当某种事件发生之后,比如,点击了一下鼠标,或者按了某个按键, ...

  4. Qt 编程指南 1 从Hello World开始

    1 简单的hello QT 注意项目和路径不要包含任何中文字符,特殊字符,空格. 只能有英文,数字,下划线,且不能数字开头. //helloqt.cpp #include <QtWidgets/ ...

  5. Qt 编程指南10 QImage Mat QPixmap转换

      //示例 pushButtonOpenPicBig按钮clicked单击动作触发 void Qt_Window::on_pushButtonOpenPicBig_clicked() { strin ...

  6. Qt 编程指南 7 添加背景

    . #include "QT_Text1.h" #include <QtWidgets/QApplication> #include <QBitmap> i ...

  7. Qt 编程指南 3&lowbar;1 按钮弹窗手动和自动关联示例

    触发的两种模式 connect() 和 on_控件ID_控件函数(参数) 两者优缺点对比: 虽然 Qt 有比较好用的自动关联大法,但自动关联不是万能的,尤其是涉及到多个窗体的时候,比如 A 窗体私有按 ...

  8. Qt 编程指南 4 按钮

    1按钮类的控件 逐个解释一下各个用途:(1)按压按钮 QPushButton最基本的按钮,点击该按钮通常是通知程序进行一个操作,比如弹个窗.下一步.保存.退出等等,这是经常用到的,操作系统里的对话框里 ...

  9. Qt 编程指南 8 显示静态小图片和动态大图片

    显示控件概览 图片浏览示例 第一行是一个标签控件,objectName 为 labelShow,文本内容清空,因为是用来显示图片用的. 主界面第二行的控件是四个普通按钮 第一个按钮文本是 " ...

随机推荐

  1. SaaS系列介绍之二&colon; SaaS介绍

    1 引言 横看成岭侧成峰,远近高低各不同. 不识庐山真面目, 只缘身在此山中.                                                  ________苏轼, ...

  2. Mysql 根据时间戳按年月日分组统计

    Mysql 根据时间戳按年月日分组统计create_time时间格式SELECT DATE_FORMAT(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM ...

  3. 《HelloGitHub》第 21 期

    公告 元旦快乐! <HelloGitHub>第 21 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编 ...

  4. ubuntu使用rdesktop连接win10的两个问题

    关闭防火墙,解决主机ping不通虚拟机的问题 win10需要修改注册表 \HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStatio ...

  5. CannyLab&sol;tsne-cuda with cuda-10&period;0

    t-SNE-CUDA Barnes-Hut t-SNE https://github.com/CannyLab/tsne-cuda/projects 做数据降维时常用到,但计算较慢,所以可用cuda加 ...

  6. tensorflow pip install 安装指定版本的包并指定安装源(速度会快很多)

    pip install tensorflow-gpu==1.3 pip install tensorflow-gpu==1.4 # pip install 命令行pip install -i http ...

  7. Spring事务传播属性介绍&lpar;一&rpar;&period;required 和 reuqires&lowbar;new

    Mandatory.Never.Not_Support传播属性分析传送门:https://www.cnblogs.com/lvbinbin2yujie/p/10260030.html Nested传播 ...

  8. windows下vi&sol;vim编辑器的基本操作

    windows下vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准 ...

  9. &num; 2017-2018-2 20155319『网络对抗技术』Exp4:恶意代码分析

    2017-2018-2 20155319『网络对抗技术』Exp4:恶意代码分析 实验目标与基础问题 ++1.实践目标++ 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析 ...

  10. javaweb消息中间件——rabbitmq入门

    概念:RabbitMQ是一款开源的消息中间件系统,由erlang开发,是AMQP的实现. 架构图大概如上. broker是消息队列的服务器,比如在linux上,我们安装的rabbitmq就是一个bro ...