目录
[一. 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.首先下载组件
查找不到这个组件的,从新进入 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
- 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
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打包 :
- 以Release方式构建QT程序;
- 使用windeployqt生成exe文件和依赖dll
- Enigma Virtual Box 封包
- Linux打包 :
- 以Release方式构建QT程序;
- 生成运行程序
- Linuxdeployqt封包
需要注意的是,在打包过程中,需要确保包含了所有必要的依赖文件,否则在运行打包后的可执行文件时可能会出现问题。