qt打包程序打包之跨平台

87 篇文章 1 订阅

本文讲的是linux系统中的程序打包,首先我们创建一个简单的程序,我的程序叫做debtest
请添加图片描述
然后设置qmake来源,这个直接决定了程序依赖的qt库的位置,如果我们需要指定qt标准库的位置,那么qt环境就需要在那个位置。
修改前:用的默认库的位置
请添加图片描述
请添加图片描述
请添加图片描述
怎么使用我们自己指定的链接库路径呢,首先需要自己编译源码或者直接拷贝已经安装的qt环境,如下
请添加图片描述
将这个gcc_64的目录拷贝要我们指定的位置。

请添加图片描述
然后配置qt
请添加图片描述
请添加图片描述
然后删除旧的执行文件,编译生成新的,再来查看执行文件的链接库位置,发现已经被更改到我们指定的位置了。
请添加图片描述
现在开始准备打包,打包之前我们需要一个找到相关库的程序linuxdeployqt,使用方法看教程linuxdeployqt教程
然后使用linuxdeployqt debtest --appimage之后,会生成一个lib文件夹和一个plugins的文件夹,我们待会用到,
现在创建一个打包文件夹
请添加图片描述
在这个文件夹中创建一个DEBIAN的文件夹,这个文件夹中创建两个文件
请添加图片描述
control是信息配置文件,
请添加图片描述

postinst是安装时脚本执行文件,这个文件里面可以做一些root下的操作。请添加图片描述
当然 Deian 安装包中还有一些其他的的控制文件:如

preinst: Debian软件包(".deb")解压前执行的脚本, 为正在被升级的包停止相关服务,直到升级或安装完成。 (成功后执行postinst 脚本)。
postinst: 主要完成软件包(".deb")安装完成后所需的配置工作. 通常, postinst脚本要求用户输入, 和/或警告用户如果接受默认值, 应该记得按要求返回重新配置这个软件。 一个软件包安装或升级完成后,postinst
脚本驱动命令, 启动或重起相应的服务。
prerm: 停止一个软件包的相关进程, 要卸载软件包的相关文件前执行。
postrm: 修改相关文件或连接, 和/或卸载软件包所创建的文件。 当前的所有配置文件都可在 /var/lib/dpkg/info 目录下找到, 与 foo 软件包相关的命名以 “foo” 开头,以 “preinst”, “postinst”, 等为扩展。这个目录下的 foo.list 文件列出了软件包安装的所有文件。Debian里用apt-get安装或卸载软件时,会常发生前处理或后处理的错误,这时只要删除对应的脚本文件,重新执行安装或卸载即可

然后在创建一个放打包文件的文件夹,这个文件夹它会对应根路径,如你命名mkdir -p uer/local/bin的话,那么程序安装后就在/usr/local/bin/下面,这边命名如下。
请添加图片描述
然后把刚刚的lib和plugins中的文件全部放进来,还有执行文件及相关联的(如图标文件),如下
请添加图片描述
为什么创建qtlib,因为这个是对应上面的库链接位置,如图这个库链接在debtest/qtlib下请添加图片描述
现在退到执行文件目录开始打包请添加图片描述
打包完成后,进行安装sudo dpkg -i debdir/debtest.deb
请添加图片描述
安装完成,然后到安装目录进行执行,这个时候可能会提示
qt.qpa.plugin: Could not find the Qt platform plugin “xcb” in “”
这个是因为plugins没有加载到。解决方法
解决后就可以启动程序了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方忘忧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值