visual studio打包QT工程发布exe安装包

一、实验环境

软件版本下载链接
visual studioMicrosoft Visual Studio Community 2022 (64 位) - Current 版本 17.7.5
QTv6.6.3
NSISv3.10官网 或 百度云1234
Windows11

二、程序准备

1、程序生成

使用 visual studio 打开工程,选择 Release 模式后,点资源生成。
在这里插入图片描述
Release 资源生成后,打开工程目录下,进入 x64/Release 文件夹 下可以看到工程资源。
在这里插入图片描述

三、程序打包

1、依赖生成

  1. 打开QT命令框,一般从Windows启动界面搜索QT,匹配出现QT MSVC命令框点击即可。也可根据实际安装路径寻找。
    在这里插入图片描述
    在这里插入图片描述
  2. cd 进入已经生成的 Release 资源目录,我的程序资源目录为D:\my_project\c++_project\OfflineDataParser\x64\Release)
    在这里插入图片描述
  3. 因为 Release 文件夹下资源缺少QT等组件依赖,所以需使用Qt自带的 windeployqt.exe 工具,用于拉取依赖创建应用程序发布包。包名为工程生成的exe文件
    windeployqt 包名
    
    在这里插入图片描述
    下图为依赖拉取完毕的目录资源截图
    在这里插入图片描述

3、发布文件夹准备

  1. 新建程序发布版本文件夹,例如我的程序当前版本为v2.0.2,在目录下创建v2.0.2文件夹,并将程序 logo 复制到当前目录下。
    在这里插入图片描述
  2. 进入” v2.0.2” 目录,创建” nsis” 文件夹(用于存放nsis配置文件) 和 ” 依赖” 文件夹(用于存放程序资源)
    在这里插入图片描述
  3. 进入”依赖” 文件夹,创建 “配置” 和 ”源” 两个文件夹
    ” 配置” 文件夹存放程序所用到的自定义资源,例如我的程序用到config外部资源。
    在这里插入图片描述
    ”源” 文件夹存放 Release 生成的资源。将 之前 Release 文件夹下所有文件复制到 ”源” 文件夹下,同时将里面的程序包移动到 “v2.0.2“ 文件夹下,我的程序包名为 ”OfflineDataParser.exe“
    在这里插入图片描述在这里插入图片描述

2、安装NSIS

  1. 安装NSIS程序,安装过程这里不做过多介绍,下图为NSIS程序已经安装完成的主界面。
    在这里插入图片描述

3、新建NSIS脚本

  1. 新建NSIS脚本
  • 点击文件 -> 新建脚本:向导 -> 弹窗(下一步),按照提示填入信息,如下图咱们填写应用打包的程序名为 ”番茄“,版本改为 2.0.2 ,点击下一步。
    在这里插入图片描述

  • 选择程序 logo 图标
    在这里插入图片描述

  • 修改发布程序名称为 “番茄”,然后选择选择发布安装程序文件路径,在 “v2.0.2” 下创建 “番茄” 文件夹,然后打开保存。
    在这里插入图片描述

    • 选择安装语言为中文,点击下一步
      在这里插入图片描述
  • 如果没有授权文件 则清空,下一步
    在这里插入图片描述

  • 删除默认路径程序文件,添加 ”依赖/OfflineDataParser.exe“ 文件,添加 依赖文件夹下的 “配置” 和 ”源“ 文件夹,点击下一步
    在这里插入图片描述

  • 下一步
    在这里插入图片描述

  • 下一步
    在这里插入图片描述

  • 下一步
    在这里插入图片描述

  • 选择保存脚本,以便下次发布程序新版本时用作模板,点击完成
    在这里插入图片描述
    在这里插入图片描述

  • 已经生成的脚本模板
    在这里插入图片描述

4、编译发布

  1. 编译脚本
    在这里插入图片描述
  2. 完成编译
    在这里插入图片描述
    自此发布 exe 安装包完毕。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/743862.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

韩顺平0基础学java——第31天

p612-637 IO流 IO流原理及流的分类 Java lO流原理 1.I/O是Input/Output的缩弓,IV/O技术是非常实用的技术,用于处理数据传输。 如读/写文件,网络通讯等。 2. Java程序中,对于数据的输入/输出操作以”流(stream)”的方式进行。 3…

系统漏洞复现与勒索病毒

知识点:SMB漏洞介绍、漏洞复现流程、勒索病毒攻击与防护 渗透测试相关: 基本概念: 渗透测试就是利用我们所掌握的渗透知识,对网站进行一步一步的渗透,发现其中存在的漏洞和隐藏的风险,然后撰写一篇测试报…

Word如何在页眉中插入和删除横线

你平常是否遇见到Word的页眉中有一条横线,怎么也删不了!!! 今天刘小生分享如何在页眉中插入和删除横线,我们一起操练起来吧! 1、Word页眉插入横线 选择【插入】-【页眉页脚】,在“页眉页脚”…

基于SSM+VUE的网上订餐系统(带1w+文档)

基于SSMVUE的网上订餐系统(带1w文档) 网上订餐系统的数据库里面存储的各种动态信息,也为上层管理人员作出重大决策提供了大量的事实依据。总之,网上订餐系统是一款可以真正提升管理者的办公效率的软件系统。 项目简介 基于SSMVUE的网上订餐系统(带1w文档…

【LLM之KG】KoPA论文阅读笔记

研究背景 知识图谱补全(KGC)是通过预测知识图谱中缺失的三元组来完善知识图谱的信息。传统方法主要基于嵌入和预训练语言模型,但这些方法往往忽视了知识图谱的结构信息,导致预测效果不佳。 研究目标 本文的研究目标是探索如何将…

YOLOv8关键点pose训练自己的数据集

这里写自定义目录标题 YOLOv8关键点pose训练自己的数据集一、项目代码下载二、制作自己的关键点pose数据集2.1 标注(非常重要)2.1.1 标注软件2.1.2 标注注意事项a.多类别检测框b.单类别检测框2.2 格式转换(非常重要)2.3 数据集划分三、YOLOv8-pose训练关键点数据集3.1 训练…

小程序注册

【 一 】小程序注册 微信公众平台 https://mp.weixin.qq.com/ https://mp.weixin.qq.com/注册 邮箱激活 小程序账户注册 微信小程序配置 微信小程序开发流程 添加项目成员 【 二 】云服务 lass 基础设施服务(组装机) 你买了一大堆的电脑配件&#x…

Live Wallpaper Themes 4K Pro for Mac v19.9 超高清4K动态壁纸

Live Wallpaper & Themes 4K Pro for Mac v19.7 是一款专为Mac用户设计的超高清4K动态壁纸应用程序。它凭借出色的视觉效果和丰富的个性化设置,为用户带来全新的桌面体验。 这款软件提供了大量精美的动态壁纸供用户选择,涵盖了各种风格和主题&#…

STM32学习-HAL库 串口通信

学完标准库之后,本来想学习freertos的,但是看了很多教程都是移植的HAL库程序,这里再学习一些HAL库的内容,有了基础这里直接学习主要的外设。 HAL库对于串口主要有两个结构体UART_InitTypeDef和UART_HandleTypeDef,前者…

Java三层框架的解析

引言:欢迎各位点击收看本篇博客,在历经很多的艰辛,我也是成功由小白浅浅进入了入门行列,也是收货到很多的知识,每次看黑马的JavaWeb课程视频,才使一个小菜鸡见识到了Java前后端是如何进行交互访问的&#x…

亚马逊云科技官方活动:一个月拿下助理架构师SAA+云从业者考试认证(送半价折扣券)

为了帮助大家考取AWS SAA和AWS云从业者认证,小李哥争取到了大量考试半价50%折扣券,使用折扣券考试最多可省75刀(545元人民币)。 领取折扣券需要加入云师兄必过班群,在群中免费领取。目前必过班群招募到了超过200名小伙伴,名额有限…

杂记 | 搭建反向代理防止OpenAI API被封禁(对于此次收到邮件提示7月9日后将被屏蔽的解决参考)

文章目录 重要声明(免责)01 OpenAI封禁API的情况02 解决方案及原理2.1 原因分析2.2 解决方案2.3 步骤概述 03 操作步骤3.1 购买一个海外服务器3.2 申请一个域名3.3 将域名指向代理服务器3.4 在代理服务器上安装nginx3.5 配置反向代理 重要声明&#xff0…

如何利用小猪APP分发进行高效的APP封装打包

你有没有想过,为什么有些应用程序似乎在一夜之间就上线了,而你的应用却还在封装打包的过程中挣扎?别担心,这里有一个秘密武器,它叫做小猪APP分发。 小猪app封装www.ppzhu.net 什么是APP封装打包? APP封装…

从零开始做题:修猫

修猫 1 题目 2 解题 2.1 使用Stegslove分析图片 (base) ┌──(holyeyes㉿kali2023)-[~/Misc/tool-misc] └─$ java -jar Stegsolve.jar 2.2 analyse -frame browser 2.3 得到flag DASCTF{818ca3a840e768da7d5fcdeaedd5012f}

解决GPU 显存未能完全释放

一、 现象 算法同学反馈显存未能完全释放。 二、解决方法 一条命令搞定 注意:执行时注意不要误杀其他的python进程,需要确认好。 我的这条命令是将所有python进程都杀死了 ps -elf | grep python | awk {print $4} | xargs kill -s 9

Redis源码学习:SDS设计与内存管理

为什么Redis选择SDS 1、缓解C语言字符串的缺陷 在 C 语言中可以使用 char* 字符数组来实现字符串。每个字符串分配一段连续的内存空间,依次存放字符串中的每一个字符,最后以null字符结尾。这种设计存在以下问题: 1、低效的操作 每次获取字…

【containerd】Containerd高阶命令行工具nerdctl

前言 对于习惯了使用docker cli的用户来说,containerd的命令行工具ctr使用起来不是很顺手,此时别慌,还有另外一个命令行工具项目nerdctl可供我们选择。 nerdctl是一个与docker cli风格兼容的containerd的cli工具。 nerdctl已经作为子项目加入…

数据分析必备:一步步教你如何用matplotlib做数据可视化(12)

1、Matplotlib 3D线框图 线框图采用值网格并将其投影到指定的三维表面上,并且可以使得到的三维形式非常容易可视化。plot_wireframe()函数用于此目的 import matplotlib.pyplot as plt import numpy as np import math import seaborn as sns plt.rcParams[font.s…

新增题目接口开发

文章目录 1.基本设计2.生成CRUD代码1.生成五张表的代码1.subject_info2.subject_brief3.subject_judge4.subject_multiple5.subject_radio 2.将所有的dao放到mapper文件夹3.将所有实体类使用lombok简化4.删除所有mapper的Param("pageable") Pageable pageable5.删除所…