QT打包(windows linux)封包 完整图文版

目录

简介:

一. for windows

1.首先下载组件

2.开始构建Release版本.

3.然后点击构建

4.在文件夹内直接点击exe文件,会报下面的错误,因为缺少dll连接;

5.需要把这个exe单独复制到一个文件夹内,

6.先cd到单独exe所在的文件夹;  cd  文件路径

7.然后运行  windeployqt 文件名称

8.然后点击One.exe  就可以正常使用了;

二. Enigma Virtual Box 软件封包

1.下载

2.安装

3.运行程序,

4.选择路径

5.执行封包

6.点击运行

三. Linux下打包QT

1.下载 Linuxdeployqt

2.安装

3.构建Release版本

4.创建 .desktop 后缀的文件

四 .总结


简介:

QT 打包是将基于 QT 开发的应用程序及其相关依赖进行整合和封装,以便能够在其他环境中方便地部署和运行。

在进行 QT 打包时,通常需要考虑以下几个方面:

  1. 收集依赖:包括 QT 自身的库文件以及项目中可能用到的其他第三方库。
  2. 配置环境变量:确保在目标系统中能够正确找到所需的库。
  3. 选择合适的打包工具或方法:如使用一些专门的安装程序制作工具或特定的打包脚本。
  4. 处理资源文件:如图标、配置文件等,确保它们能正确被包含和使用。

通过有效的打包,可以使 QT 应用程序更易于分发和使用,减少在不同系统上部署时可能遇到的问题。例如,将应用程序打包成一个可执行文件和相关库的集合,用户可以直接在其他计算机上运行而无需繁琐地安装各种依赖。

一. for windows

1.首先下载组件

查找不到这个组件的,从新进入 QT Maintenance Tool 

选择下面组件

当然也可以选择下面的 MSVC 2019;

2.开始构建Release版本.

在下面截图那里选择;

3.然后点击构建

查看应用程序输出

没有报错就可以在程序所在的文件夹找到exe.

4.在文件夹内直接点击exe文件,会报下面的错误,因为缺少dll连接;

5.需要把这个exe单独复制到一个文件夹内,

使用刚才安装的组件,添加所需的dll依赖.

6.先cd到单独exe所在的文件夹;  cd  文件路径

cd E:\QTCode\OneExe\One.exe

7.然后运行  windeployqt 文件名称

windeployqt One.exe

这时候文件夹内会生成dll依赖,这时候单独放在一个文件夹的好处就出来了;

8.然后点击One.exe  就可以正常使用了;

二. Enigma Virtual Box 软件封包

网址:The Enigma Protector - 专业的软件授权保护系统

1.下载

2.安装

下载完成之后,直接下一步 下一步就行.

3.运行程序,

可以选择中文.

4.选择路径

exe路径,为release下的exe文件.也可以用windeploy命令构建出来的exe

输出路径就随便选了.

主要是下面这步.选择dll;

选择windeploy命令构建出来的文件夹(内含有所需dll)

5.执行封包

6.点击运行

三. Linux下打包QT

首先下载自动拷贝工具(和上面windows下的windeployqt相似)

1.下载 Linuxdeployqt

Releases · probonopd/linuxdeployqt (github.com)

2.安装

打开 Terminal

  1. sudo mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt
  2. sudo mv ./linuxdeployqt /usr/local/bin
  3. cd /usr/local/bin
  4. chmod 777 linuxdeployqt
  5. sudo linuxdeployqt --version

ps:如果出现 error loading libfuse.so.2 是缺少这个FUSE关键库

只需要运行

  1. sudo apt install libfuse2

3.构建Release版本

和window下类似,修改为Release,然后点击构建;

然后生成的复制到零一个空文件夹下;

4.创建 .desktop 后缀的文件

[Desktop Entry]
Type=Application
Name=这里填应用的名字
Comment=这里描述该程序功能
Exec=这里是可执行文件的路径。仅当可执行文件不在 $PATH 变量中指定的任何路径中时,才必须使用可执行文件的完整路径。例如,路径 /usr/bin 内的任何文件都不需要在 Exec 字段中指定其完整路径,而只需指定其文件名即可,或者在当前路径下也不用。
Icon=这里是应用图标。例如,目录 /usr/share/pixmaps 下的所有图标不需要指定其完整路径,但不需要指定不带扩展名的文件名。例如,如果图标文件是 /usr/share/pixmaps/wallch.png,则图标字段应该只是“wallch”。或者在当前路径下也不用。所有其他图标都应指定其完整路径。
Categories=Application;

例子

执行下面命令:

~/Downloads/linuxdeployqt One-appimage
# one 是可执行文件的名字
# -appimage 是参数

即可生成 One.AppImage 

四 .总结

  • Windows打包
    1. 以Release方式构建QT程序;
    2. 使用windeployqt生成exe文件和依赖dll
    3. Enigma Virtual Box 封包
  • Linux打包
    1. 以Release方式构建QT程序;
    2. 生成运行程序
    3. Linuxdeployqt封包

需要注意的是,在打包过程中,需要确保包含了所有必要的依赖文件,否则在运行打包后的可执行文件时可能会出现问题。

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

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

相关文章

快速数据处理:软件功能简介及下载

目录 1 功能介绍 1.1 封面 1.2 可定制功能 1.3 支持的操作系统和CPU 1.4 数据上报 1.5 数据接收 1.5 附带的测试数据 1.6 关于内置python的说明 2 软件下载 3 待开发功能 发布这个程序的原因是,前面写的这个专题的几篇文章,我原以为一点用也没…

【SpringBoot】SpringBoot:简化数据库操作与API开发

文章目录 引言SpringBoot概述数据库操作简化传统数据库操作的挑战使用Spring Data JPA示例:定义Repository接口实现服务层 使用MyBatis示例:配置MyBatis定义Mapper接口 API开发简化RESTful API概述创建RESTful API示例:定义控制器 高级特性与…

GDB:从零开始入门GDB

目录 1.前言 2.开启项目报错 3.GDB的进入和退出 4.GDB调试中查看代码和切换文件 5.GDB调试中程序的启动和main函数传参 6.GDB中断点相关的操作 7.GDB中的调试输出指令 8.GDB中自动输出值指令 9.GDB中的调试指令 前言 在日常开发中,调试是我们必不可少的技能。在专业…

2024年6个恢复删除数据的方法,看这篇就够了~

在数字化飞速发展的今天,数据已成为我们生活中不可或缺的组成部分,它记录着我们的记忆、创意和辛勤付出。然而,生活总是充满意外,我们可能会遭遇数据意外删除或丢失的困境。在这种关键时刻,如何高效、准确地恢复数据就…

搭建知识付费APP平台教学:在线教育系统源码详解

如何搭建一个高效的知识付费APP平台呢?今天,笔者将详细解析在线教育系统的源码,帮助您快速搭建自己的知识付费APP平台。 一、平台的核心功能 一个完整的知识付费APP平台通常需要具备以下核心功能: 用户管理 内容管理 支付 课…

TCP相关细节

1. 常用TCP参数 1.1 ReceiveBufferSize ReceiveBuffersize指定了操作系统读缓冲区的大小, 默认值是8192(如图5-10 所示)。在第4章的例子中,会有"假设操作系统缓冲区的长度是8" 这样的描述,可通过socket.ReceiveBufferSize 8 实现。当接收端缓冲区满了的时…

基于单片机的无人监守点滴控制系统设计

摘要 : 在当代社会 , 点滴是一种常用的诊疗方法 。 为了减轻医护人员的压力 , 设计了一种基于单片机的无人监守点滴控制系统, 该系统共由 2 个板子组成 , 其中一个主控板子 , 一个检测板子 。 检测板与…

《Windows API每日一练》4.2 设备环境

在第三章我们已经使用设备环境句柄在窗口客户区绘图了。在图形输出设备(比如屏幕或者打印机)上绘制图形,必须首先获取设备环境,即DC的句柄。当 Windows把这个句柄交给你的程序,Windows同时也就给予你使用这个设备的权限…

字节智能体平台:扣子原理和实践案例

完整内容: 字节智能体平台:扣子原理和实践案例

Day52 代码随想录打卡|二叉树篇---二叉搜索树中的众数

题目(leecode T501): 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。 如果树中有不止一个众数&#xff0c…

什么是GPT-4

什么是GPT-4 ChatGPT 可以说,ChatGPT的发展,主要的分水岭在GPT-4,GPT-4主要是文本对话,且训练度也不够完善。GPT-4之后不但训练度得到了巨大提升,模型支持的参数量更是预计有1万亿参数,在这之后出现的GPT-4…

正运动邀您共聚2024深圳激光展,助力激光加工与智能制造!

■展会名称 2024深圳激光展 ■展会日期 2024年6月19日 - 21日 ■展馆地点 深圳国际会展中心(新馆) ■展位号 9H - D101 6月19至21日,深圳激光展将在中国深圳国际会展中心(新馆)举办。 激光加工在消费电子、光伏锂电新能源、半导体等行…

themleaf 页面弹层取值

themleaf 页面弹层取值 创作背景themleaf页面事件onbluronclick 页面参数提交 创作背景 个人在日常开发中,遇到了一个需求页面,页面交互较多,用到的事件也很丰富,特此记录,方便后续查找也方便有需要的开发者采用&…

shell文本三剑客 awk 和 grep

awk 前言 AWK是一种优良的文本处理工具。它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一。 Linux中最常用的文本处理工具有grep,sed,awk。行内将之称为文本三剑客,就功能量和效率来看,awk是当之无愧的文本三…

代码随想录算法训练营day22|701.二叉搜索树中的插入操作、 450.删除二叉搜索树中的节点、 235. 二叉搜索树的最近公共祖先

701.二叉搜索树中的插入操作 这道题较为简单,只需要通过递归找到符合要求的叶子节点,并将节点插入即可。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(…

软件体系结构笔记(自用)

来自《软件体系结构原理、方法与实践(第三版)》清华大学出版社 张友生编著 1-8章12章 复习笔记 如有错误,欢迎指正!!!

【每日刷题】Day65

【每日刷题】Day65 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. LCR 175. 计算二叉树的深度 - 力扣(LeetCode) 2. 序列找数_牛客题霸_牛客网…

(新)Spring Security如何实现登录认证(实战篇)

一、回顾认证流程详解 概念速查: Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息。 AuthenticationManager接口:定义了认证Authentication的方法 UserDetailsService接口:加载用户特定数据的核心接…

内网安全【2】-域防火墙

1.判断什么时候用代理 2.判断什么时候用隧道 3.判断出网和不出网协议 4.如何使用代理建立节点并连接 5.如何使用隧道技术封装协议上线 6.判断哪些代理或隧道情况选择放弃 代理技术:解决网络通讯不通的问题(利用跳板机建立节点后续操作)(网络设置导…

【C++】STL中stack、queue、deque的使用

前言:在前面我们学习了List的模拟实现与使用,今天我们进一步的来学习stack、queue、deque的使用方法,然后为后面的模拟实现做一下铺垫。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质量&#xff…