[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博客



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。