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

目录

简介:

[一. for windows](#一. for windows)

1.首先下载组件

2.开始构建Release版本.

3.然后点击构建

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

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

[6.先cd到单独exe所在的文件夹; cd 文件路径](#6.先cd到单独exe所在的文件夹; cd 文件路径)

[7.然后运行 windeployqt 文件名称](#7.然后运行 windeployqt 文件名称)

[8.然后点击One.exe 就可以正常使用了;](#8.然后点击One.exe 就可以正常使用了;)

[二. Enigma Virtual Box 软件封包](#二. Enigma Virtual Box 软件封包)

1.下载

2.安装

3.运行程序,

4.选择路径

5.执行封包

6.点击运行

[三. Linux下打包QT](#三. Linux下打包QT)

[1.下载 Linuxdeployqt](#1.下载 Linuxdeployqt)

2.安装

3.构建Release版本

[4.创建 .desktop 后缀的文件](#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 后缀的文件

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

例子

执行下面命令:

cpp 复制代码
~/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封包

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

相关推荐
I_Am_Me_3 分钟前
【JavaEE进阶】 JavaScript
开发语言·javascript·ecmascript
重生之我是数学王子13 分钟前
QT基础 编码问题 定时器 事件 绘图事件 keyPressEvent QT5.12.3环境 C++实现
开发语言·c++·qt
Ai 编码助手15 分钟前
使用php和Xunsearch提升音乐网站的歌曲搜索效果
开发语言·php
学习前端的小z19 分钟前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
神仙别闹26 分钟前
基于C#和Sql Server 2008实现的(WinForm)订单生成系统
开发语言·c#
XINGTECODE28 分钟前
海盗王集成网关和商城服务端功能golang版
开发语言·后端·golang
zwjapple44 分钟前
typescript里面正则的使用
开发语言·javascript·正则表达式
小五Five1 小时前
TypeScript项目中Axios的封装
开发语言·前端·javascript
前端每日三省1 小时前
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?
开发语言·前端·javascript
凡人的AI工具箱1 小时前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang