目录
[一. for windows](#一. for windows)
4.在文件夹内直接点击exe文件,会报下面的错误,因为缺少dll连接;
[6.先cd到单独exe所在的文件夹; cd 文件路径](#6.先cd到单独exe所在的文件夹; cd 文件路径)
[7.然后运行 windeployqt 文件名称](#7.然后运行 windeployqt 文件名称)
[8.然后点击One.exe 就可以正常使用了;](#8.然后点击One.exe 就可以正常使用了;)
[二. Enigma Virtual Box 软件封包](#二. Enigma Virtual Box 软件封包)
[三. Linux下打包QT](#三. Linux下打包QT)
[1.下载 Linuxdeployqt](#1.下载 Linuxdeployqt)
[4.创建 .desktop 后缀的文件](#4.创建 .desktop 后缀的文件)
[四 .总结](#四 .总结)
简介:
QT 打包是将基于 QT 开发的应用程序及其相关依赖进行整合和封装,以便能够在其他环境中方便地部署和运行。
在进行 QT 打包时,通常需要考虑以下几个方面:
- 收集依赖:包括 QT 自身的库文件以及项目中可能用到的其他第三方库。
- 配置环境变量:确保在目标系统中能够正确找到所需的库。
- 选择合适的打包工具或方法:如使用一些专门的安装程序制作工具或特定的打包脚本。
- 处理资源文件:如图标、配置文件等,确保它们能正确被包含和使用。
通过有效的打包,可以使 QT 应用程序更易于分发和使用,减少在不同系统上部署时可能遇到的问题。例如,将应用程序打包成一个可执行文件和相关库的集合,用户可以直接在其他计算机上运行而无需繁琐地安装各种依赖。
一. for windows
1.首先下载组件
![](https://img-blog.csdnimg.cn/direct/1c36d14639934329886070af020c0a9e.png)
查找不到这个组件的,从新进入 QT Maintenance Tool
选择下面组件
![](https://img-blog.csdnimg.cn/direct/1cd03990ef274921a3602cc313fc854c.png)
当然也可以选择下面的 MSVC 2019;
![](https://img-blog.csdnimg.cn/direct/608d26b1563a4bcb8c6d4a4b9b316fb7.png)
2.开始构建Release版本.
在下面截图那里选择;
![](https://img-blog.csdnimg.cn/direct/bd63645b3e2643c4982d6bc670433f79.png)
3.然后点击构建
![](https://img-blog.csdnimg.cn/direct/2388e0b816aa44b5b70374a4655e6820.png)
查看应用程序输出
![](https://img-blog.csdnimg.cn/direct/dacb3bdc9a6c49dfb69ab7801b2a2edb.png)
没有报错就可以在程序所在的文件夹找到exe.
![](https://img-blog.csdnimg.cn/direct/e6652c9d8e3e4284a7f747232006d61d.png)
![](https://img-blog.csdnimg.cn/direct/95ac7e03997941deab05aaa33e3c7eca.png)
![](https://img-blog.csdnimg.cn/direct/39af10bb58034ac880a5e6a82f920110.png)
![](https://img-blog.csdnimg.cn/direct/72f2e7b3d8404d45b56c1f65091b746d.png)
4.在文件夹内直接点击exe文件,会报下面的错误,因为缺少dll连接;
![](https://img-blog.csdnimg.cn/direct/424370d21dc94aba88e5b83a6daac856.png)
5.需要把这个exe单独复制到一个文件夹内,
使用刚才安装的组件,添加所需的dll依赖.
6.先cd到单独exe所在的文件夹; cd 文件路径
cd E:\QTCode\OneExe\One.exe
![](https://img-blog.csdnimg.cn/direct/78db22bed607427b91f12463def47313.png)
7.然后运行 windeployqt 文件名称
windeployqt One.exe
![](https://img-blog.csdnimg.cn/direct/992f88650cab45f2b5fc8e23d115e877.png)
这时候文件夹内会生成dll依赖,这时候单独放在一个文件夹的好处就出来了;
![](https://img-blog.csdnimg.cn/direct/fd1384f6aacd4a259d7c76f7f985824a.png)
8.然后点击One.exe 就可以正常使用了;
![](https://img-blog.csdnimg.cn/direct/a9761f50257342779cf9ff15be7a023d.png)
二. Enigma Virtual Box 软件封包
网址:The Enigma Protector - 专业的软件授权保护系统
1.下载
![](https://img-blog.csdnimg.cn/direct/393ef28b16674fac8ebccdd6f4777f73.png)
2.安装
下载完成之后,直接下一步 下一步就行.
3.运行程序,
可以选择中文.
![](https://img-blog.csdnimg.cn/direct/92aef09a8fd84249ab03d925224cb309.png)
4.选择路径
exe路径,为release下的exe文件.也可以用windeploy命令构建出来的exe
输出路径就随便选了.
![](https://img-blog.csdnimg.cn/direct/c07d8e3cf0c1479988aef4c156d01a3a.png)
![](https://img-blog.csdnimg.cn/direct/7c64c1456b6b46d09ef163a39a6966e1.png)
主要是下面这步.选择dll;
![](https://img-blog.csdnimg.cn/direct/59c94a89d81b4293b62f650913b24bc8.png)
![](https://img-blog.csdnimg.cn/direct/781a016413bf40389f13ac84caa3d757.png)
选择windeploy命令构建出来的文件夹(内含有所需dll)
![](https://img-blog.csdnimg.cn/direct/4db7103e26db4ada802e99406b4c9654.png)
5.执行封包
![](https://img-blog.csdnimg.cn/direct/304bee749d7d40b7ae8f84447bc2adf2.png)
6.点击运行
![](https://img-blog.csdnimg.cn/direct/370605ddd59941e3a1bf93a977116731.png)
三. Linux下打包QT
首先下载自动拷贝工具(和上面windows下的windeployqt相似)
1.下载 Linuxdeployqt
Releases · probonopd/linuxdeployqt (github.com)
![](https://img-blog.csdnimg.cn/direct/55a9cf8d1e354d2ab2343e0d0dbe8d1f.png)
2.安装
![](https://img-blog.csdnimg.cn/direct/5b64a4ccc6f94f57a204fbfb457cf020.png)
打开 Terminal
- sudo mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt
- sudo mv ./linuxdeployqt /usr/local/bin
- cd /usr/local/bin
- chmod 777 linuxdeployqt
- sudo linuxdeployqt --version
ps:如果出现 error loading libfuse.so.2 是缺少这个FUSE关键库只需要运行
sudo apt install libfuse2
![](https://img-blog.csdnimg.cn/direct/b338786d6140479ea750ad4964b5b9e7.png)
3.构建Release版本
和window下类似,修改为Release,然后点击构建;
然后生成的复制到零一个空文件夹下;
![](https://img-blog.csdnimg.cn/direct/facf79c3a0bf4f11bf341152286b9217.png)
![](https://img-blog.csdnimg.cn/direct/149f7d0f049b425791c104fb374f7398.png)
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;
例子
![](https://img-blog.csdnimg.cn/direct/d999c987acea4de697a4f9caa49579cd.png)
执行下面命令:
cpp
~/Downloads/linuxdeployqt One-appimage
# one 是可执行文件的名字
# -appimage 是参数
即可生成 One*.AppImage*
四 .总结
- Windows打包 :
- 以Release方式构建QT程序;
- 使用windeployqt生成exe文件和依赖dll
- Enigma Virtual Box 封包
- Linux打包 :
- 以Release方式构建QT程序;
- 生成运行程序
- Linuxdeployqt封包
需要注意的是,在打包过程中,需要确保包含了所有必要的依赖文件,否则在运行打包后的可执行文件时可能会出现问题。