[Qt打包]:Qt和PyQt在windows和linux打包-windeployqt和Inno Setup Compiler+linuxdeployqt(linux版)+Pyinstaller(最全)
rqtz 2024-07-09 17:37:01 阅读 97
windows
项目release编译
打开Qt,将你的项目选择release模式编译,为什么选择release模式,因为Debug模式编译出的应用程序占用内存空间较大,而release模式相对较小。如图。
编译成功后,打开所在目录就会发现生成了release的文件夹
打开之后会发现一个exe可执行程序,这个就是你的应用程序了。
windeployqt方法打包
首先配置环境变量,在搜索中搜索 环境变量,按照图示操作
在下面的路径中,我找到了该程序
将该路径添加到环境变量后,这样可以在终端直接使用qt的某些程序。包括windeployqt。
打开powershell验证,发现输入winde后直接按tab就可出现.
生成应用包
新建一个文件夹,将应用程序exe和资源文件放到一个文件中,如下图
在当前文件夹右键在终端打开,输入windeployqt.exe再输入 ./ 再按tab,再回车,就OK了。
完成之后是这样的,生成了相关的dll文件
Inno Setup Compiler软件方法打包
下载Inno Setup Compiler
链接:Inno Setup Downloads (jrsoftware.org) 点击下面图片框出即可下载。
使用Inno Setup Compiler
1. 选择创建新的的脚本文件,点击ok
2.
3.
Application name 指的是你的应用程序的名称,这里叫做serial assistantApplication version 指的是你的应用程序版本Application Pushlisher 指的是你的软件发布者Application website 指的是软件的网站,这里随便写了
4.
Application destination base folder 指的是是否允许用户可以修改应用程序的目录 这里选择custom自定义,默认为D:\ ,当然你可以自定义。Application floder name 指的是目录名称是否允许修改目录名
5.
Application main executable flie 指的是 应用可执行文件的路径,按照之前windeployqt执行后生成的文件夹中的exe程序,我放在了serial assistant 路径下other application flies 指的是添加额外的动态库文件,也是上述windeployqt执行后的目录,点击add floder 后 直接选择serial assistant目录即可。
点击后跳出
指的是是否包含目录下的子目录,直接点ok
6.
指的是是否要关联本地的一些文件,这里不需要 ,直接next
7.
选择创建快捷方式的方法,直接next。
8.
直接next。
9.
选择安装给所有用户使用,next。
10.
选择语言,只能英文,因为没有中文。
11.
compiler settings 选择生成脚本文件的存储路径
compiler output base flie name 安装包的名称
custom setup icon flie 安装包图标
setup password 安装时的密码
12.
直接next。
13.
直接finish.
14.
立即编译脚本。
15.
给脚本文件给予一个名字保存。
16.之后就会有进度条
17.完成之后就会在桌面上生成
双击打开,按照步骤安装即可。
安装成功后打开,这是我写的一个串口助手,感兴趣的可以看我的专栏
https://blog.csdn.net/m0_75192474/category_12678839.html?spm=1001.2014.3001.5482
linux版
linuxdeployqt打包方法
安装linuxdeployqt 链接:https://github.com/probonopd/linuxdeployqt
点击releases
选择框选的内容下载。我把他移动到主目录。
赋予权限并重命名
chmod +x linuxdeployqt-continuous-x86_64.AppImage
mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt
./linuxdelpoyqt -version
查看版本
若你的项目使用qmake
使用release编译后会生成像这样
打开之后,有一个共享库文件,名称和你的项目名称一样,在当前窗口前打开终端,使用./Qclient就会出现你的应用程序。
创建一个.desktop文件,有关,desktop文件创建,请看我的博客linux中将应用程序添加图标(快捷方式 ),并放置任务栏中,.desktop文件的使用_linux desktop使用-CSDN博客
[Desktop Entry]
Type=Application
Name=slam_client
Comment=cilent for slam
Exec=/home/rqtz/build-Qclient-unknown-Release/QClient
Icon=wq
Terminal=false
Categories=Utility;
需要注意Exec=/home/rqtz/build-Qclient-unknown-Release/QClient ,是你程序共享库文件路径(上面有提到)
Icon=wq 是你应用图标,最好使用256x256像素的。
创建一个文件夹QClient
将刚才的共享库文件,./desktop文件,图标,放入其中,像这样
在当前文件夹打开终端,输入重命名后的linuxdeployqt 的路径 加上你的动态库文件,最后加上-appimage
或者
/home/rqtz/linuxdeployqt ./Qcilent
回车后,就开始打包了。
完成之后会额外生成这些
双击红框即可运行。
若你的项目使用Cmake
执行cmake后,找到你程序的共享库文件,我的是
同样也是创建一个文件夹,将刚才的共享库文件,./desktop文件,图标,放入其中,在执行linuxdeployqt即可。
如果打包过程中出现问题,一般是你的应用程序图标尺寸不对,或者是图标照片问题。
PyQt程序打包,windows,linux都适用
使用pip安装,使用清华源快读安装。
pip install pyinstaller -i -i https://pypi.tuna.tsinghua.edu.cn/simple
windows端
选择一个py文件,
右键打开终端
输入pyinstaller.exe py文件
回车就开始打包。
完成后,按照下面路径找到exe文件,双击运行即可
效果,这是我用pyqt写的一个上位机
感兴趣的看我的专栏 智能车上位机系统(pyqt+socket)_rqtz的博客-CSDN博客
linux端
选择一个pyqt的程序,里面包含了多种pyqt的库,例如我选择的是
右键打开终端,输入pyinstaller py文件
完成!会生成一个dist目录,打开找到可执行程序即可使用。
最后
linux与windows都是使用的同一个文件client.py,其中需要的模块有
打包后生成的库文件都在_internal中。
如果这篇文章对大家有帮助,可以给个三连吗,如果有错的地方欢迎大家指正,大家的认可是我创作的动力,谢谢你们😘😘!
参考
Linux 下使用 linuxdeployqt 打包QT程序-CSDN博客
pyinstaller打包exe(详细教程)-CSDN博客
我的其他博客及专栏
智能车上位机系统(pyqt+socket)_rqtz的博客-CSDN博客
https://blog.csdn.net/m0_75192474/category_12678839.html?spm=1001.2014.3001.5482
linux中将应用程序添加图标(快捷方式 ),并放置任务栏中,.desktop文件的使用_linux desktop使用-CSDN博客
上一篇: jdk17 环境easyexcel导入excel报错java.lang.NoClassDefFoundError: org/apache/commons/io/build/AbstractStream
下一篇: Ubuntu中添加新用户
本文标签
[Qt打包]:Qt和PyQt在windows和linux打包-windeployqt和Inno Setup Compiler+linuxdeployqt(linux版)+Pyinstaller(最全)
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。