qt打包程序打包之跨平台

news2024/12/30 2:05:12

本文讲的是linux系统中的程序打包,首先我们创建一个简单的程序,我的程序叫做debtest

然后设置qmake来源,这个直接决定了程序依赖的qt库的位置,如果我们需要指定qt标准库的位置,那么qt环境就需要在那个位置。
修改前:用的默认库的位置

请添加图片描述
怎么使用我们自己指定的链接库路径呢,首先需要自己编译源码或者直接拷贝已经安装的qt环境,如下

将这个gcc_64的目录拷贝要我们指定的位置。

然后配置qt

然后删除旧的执行文件,编译生成新的,再来查看执行文件的链接库位置,发现已经被更改到我们指定的位置了。

现在开始准备打包,打包之前我们需要一个找到相关库的程序linuxdeployqt,使用方法看教程linuxdeployqt教程
然后使用linuxdeployqt debtest --appimage之后,会生成一个lib文件夹和一个plugins的文件夹,我们待会用到,
现在创建一个打包文件夹

在这个文件夹中创建一个DEBIAN的文件夹,这个文件夹中创建两个文件

control是信息配置文件,

postinst是安装时脚本执行文件,这个文件里面可以做一些root下的操作。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1580723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# 如何修改项目名称

目录 背景具体步骤1、Visual Studio中修改项目名和程序集名称以及命名空间2、修改项目文件夹名3、修改解决方案里项目的路径4、再次打开解决方案,问题解决步骤总结 名词解释解决方案(Solution)项目(Project)程序集&…

【操作系统】CentOS7入门级安装

下载镜像 CentOS镜像下载Download (centos.org) 我们选择第一个 X86_64 CentOS Mirrors List 版本描述X86_X64带64位的32位扩展版(一般安装这个)ARM64 (aarch64)嵌入式。适用于微端(树莓派、机械臂、机械中控)IBM Power (ppc64le)专用于IBM POWER服务器 选择一个合适的链接 …

DSL - Wire 实现-ApiHug101

🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace docs/ha…

javaScript手写专题——防抖/节流/闭包/Promise/深浅拷贝

目录 目录 一、 防抖/节流/闭包/定时器 编写一个组件,在input中输入文本,在给定的数据中查找相关的项目,并渲染搜索结果列表 1.新增InputSearch.vue组件 key的作用 2.新增 InputView.vue 3.添加路由 4.效果演示 follow up加上防抖怎么处理 1.…

如何从头开始编写LoRA代码,这有一份教程

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。 LoRA&…

机器学习-随机森林算法预测温度

文章目录 算法简介解决问题获取数据集探索性数据分析查看数据集字段信息查看数据集综合统计结果查看特征值随时间变化趋势 数据预处理处理缺失数据字符列编码数据集分割训练集、验证集、测试集数据集分割 构建模型并训练结果分析与评估进一步优化实际使用经验总结 算法简介 随…

基于遗传优化的SVD水印嵌入提取算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于遗传优化的的SVD水印嵌入提取算法。对比遗传优化前后SVD水印提取性能,并分析不同干扰情况下水印提取效果。 2.测试软件版本以及运行结果展示 MA…

深度学习实践(一)基于Transformer英译汉模型

本文目录 前述一、环境依赖二、数据准备1. 数据加载2. 构建单词表程序解析(1)将列表里每个子列表的所有单词合并到一个新列表(没有子列表)中。(2)Counter()-- 统计迭代对象各元素出现…

【Spring AOP】@Aspect结合案例详解(一): @Pointcut使用@annotation + 五种通知Advice注解(已附源码)

文章目录 前言AOP与Spring AOPAspect简单案例快速入门 一、Pointcutannotation 二、五种通知Advice1. Before前置通知2. After后置通知3. AfterRunning返回通知4. AfterThrowing异常通知5. Around环绕通知 总结 前言 在微服务流行的当下,在使用SpringCloud/Springb…

Mogdb双网卡同步最佳实践

大家都知道Oracle数据库无论是单机还是RAC集群在进行生产部署实施时,我们都会对网卡做冗余考虑,比如使用双网卡,比如public、心跳网络。这样的目的主要是为了安全,避免淡点故障。当然也网卡Bond不仅是可以做主备还可以支持负载均衡…

redis分布式锁+redisson框架

目录 🧂1.锁的类型 🌭2.基于redis实现分布式 🥓3. 基于redisson实现分布式锁 1.锁的类型 1.本地锁:synchronize、lock等,锁在当前进程内,集群部署下依旧存在问题2.分布式锁:redis、zookeeper等…

OLAP介绍

OLAP OLAP介绍 Rollup OLAP(在线分析处理)的上下文中,"Rollup"是一个重要的概念,它指的是在多维数据集中自动地聚合数据到更高的层次或维度的过程。这种操作通常用于快速计算和展示汇总数据,以便于用户进…

包和final.Java

1,包 包就是文件夹。用来管理不同功能的Java类,方便后期代码的维护。 (1)包名的规则是什么? 公司域名反写报的作用,需要全部英文小写,见名知意。com.itheima.domain (2&#xff…

15.队列集

1.简介 在使用队列进行任务之间的“沟通交流”时,一个队列只允许任务间传递的消息为同一种数据类型,如果需要在任务间传递不同数据类型的消息时,那么就可以使用队列集。FreeRTOS提供的队列集功能可以对多个队列进行“监听”,只要…

Redis高级-分布式缓存

分布式缓存 – 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题: 0.目标 1.Redis持久化 Redis有两种持久化方案: RDB持久化AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件)…

QT drawPixmap和drawImage处理图片模糊问题

drawPixmap和drawImage显示图片时,如果图片存在缩放时,会出现模糊现象,例如将一个100x100 的图片显示到30x30的区域,这个时候就会出现模糊。如下: 实际图片: 这个问题就是大图显示成小图造成的像素失真。 当…

FPGA(Verilog)实现按键消抖

实现按键消抖功能: 1.滤除按键按下时的噪声和松开时的噪声信号。 2.获取已消抖的按键按下的标志信号。 3.实现已消抖的按键的连续功能。 Verilog实现 模块端口 key_filter(input wire clk ,input wire rst_n ,input wire key_in , //按下按键时为0output …

[NKCTF2024]-PWN:leak解析(中国剩余定理泄露libc地址,汇编覆盖返回地址)

查看保护 查看ida 先放exp 完整exp: from pwn import* from sympy.ntheory.modular import crt context(log_leveldebug,archamd64)while True:pprocess(./leak)ps[101,103,107,109,113,127]p.sendafter(bsecret\n,bytes(ps))cs[0]*6for i in range(6):cs[i]u32(p…

6.模板初阶(函数模板、类模板、类模板声明与定义分离)

1. 泛型编程 如何实现一个通用的交换函数呢? 使用函数重载虽然可以实现,但是有一下几个不好的地方: 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数代码的…

线性、逻辑回归算法学习

1、什么是一元线性回归 线性:两个变量之间的关系是一次函数,也是数据与数据之间的关系。 回归:人们在测试事物的时候因为客观条件所限,求的都是测试值,而不是真实值,为了无限接近真实值,无限次的…