qt打包程序打包之跨平台

86 篇文章 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没有加载到。解决方法
解决后就可以启动程序了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Qt是一种跨平台的C++应用程序框架,它提供了一组丰富的库和工具,用于开发高性能、可扩展和易维护的应用程序。 对于Qt应用程序打包,有多种方式可供选择。以下是两种常见的打包方式: 1. 使用Qt的部署工具:Qt提供了一个名为windeployqt(在Windows上)或macdeployqt(在macOS上)的工具,可以自动分析Qt应用程序依赖的动态库,并将它们一起打包到应用程序的文件夹中。此外,该工具还会进行一些其他的清理和修复。使用这种方式打包应用程序非常简单,只需在命令行中运行相应的工具即可。 2. 使用第三方打包工具:除了Qt提供的打包工具,还有一些第三方工具可以用来打包Qt应用程序,例如Inno Setup、NSIS、InstallShield等。这些工具可以帮助开发者更灵活地进行打包操作,例如添加桌面快捷方式、自定义安装界面等。使用这种方式打包应用程序需要先安装所选择的第三方工具,并按照其相应的使用手册进行配置和操作。 无论选择哪种打包方式,都需要注意以下几点: - 确保打包包含了所有依赖的动态库,以免在目标机器上出现缺少依赖的问题。 - 对于特定平台,例如Windows,可能还需要考虑提供Visual C++ Redistributable Packages等额外的依赖。 - 打包后的应用程序应该进行测试,以确保在目标机器上能够正确运行。 - 对于商业应用程序,还可以考虑使用代码签名来增强应用程序的安全性和可信度。 总之,Qt提供了一些简单易用的打包工具,同时也支持使用第三方工具来定制化打包操作。选择合适的打包方式可以使应用程序的部署更加方便和可靠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

东方忘忧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值