Linux下Qt程序打包

文章目录

  • 一、前言
  • 二、linuxdeployqt下载安装
  • 三、Qt环境变量配置
  • 四、准备Qt可执行文件
  • 五、打包
  • 六、封装成deb安装包

一、前言

在Windows下进行Qt开发,软件开发好之后可以使用windeployqt进行打包,然后程序就可以移动到其它电脑上运行了

在Linux下同样可以进行打包,使用linuxdeployqt


二、linuxdeployqt下载安装

下载地址:https://github.com/probonopd/linuxdeployqt/releases
在这里插入图片描述
下载结束之后进行安装。

1、为了方便使用,将名字改短一点:

mv linuxdeployqt-6-x86_64.AppImage linuxdeployqt

2、修改权限

chmod 777 linuxdeployqt

3、把linuxdeployqt可执行文件放到/usr/local/bin目录下,方便在任何目录都可以访问

mv linuxdeployqt /usr/local/bin

4、测试是否安装成功

linuxdeployqt --version

在这里插入图片描述
输出版本信息,表示安装成功。


遇到的问题:下载的linuxdeployqt版本太新

linuxdeployqt  (commit 8cb9438), build 67 built on 2024-07-09 18:22:04 UTC ERROR: The host system is too new. 
Please run on a system with a glibc version no newer than what comes with the oldest currently supported mainstream distribution (Ubuntu Focal Fossa), which is glibc 2.31. 
This is so that the resulting bundle will work on most still-supported Linux distributions. For more information, please see https://github.com/probonopd/linuxdeployqt/issues/340

解决办法:下载更旧的版本,即可解决!


三、Qt环境变量配置

工具会根据生成的可执行文件,自动搜索依赖,
所以我们需要确保Qt库的相关路径设置到环境变量中,这样工具在搜索时才能找到,并拷贝它们。

另外拷贝文件,对环境变量的使用,不想要重启系统那么麻烦,所以我们修改.bashrc文件,仅对当前用户永久有效。

vim ~/.bashrc

在.bashrc文件末尾,追加内容如下:

#add qt env
export PATH=/opt/Qt5.13.0/5.13.0/gcc_64/bin:$PATH
export LIB_PATH=/opt/Qt5.13.0/5.13.0/gcc_64/lib:$LIB_PATH
export PLUGIN_PATH=/opt/Qt5.13.0/5.13.0/gcc_64/plugins:$PLUGIN_PATH
export QML2_PATH=/opt/Qt5.13.0/5.13.0/gcc_64/qml:$QML2_PATH

其中,/opt/Qt5.13.0/5.13.0/gcc_64是本次测试环境Qt安装目录,大家根据自己的情况替换。

然后,使用source命令让文件立即生效。

source ~/.bashrc

然后,对环境变量测试下,是否设置正确。如下:

qmake -v

在这里插入图片描述


四、准备Qt可执行文件

1、新建文件夹ADS-RTSim

mkdir ADS-RTSim

2、将Qt可执行文件复制到文件夹ADS-RTSim

cp /home/emtp/QtProject/build-DGRSS-Release/release/ADS-RTSim /home/emtp/ADS-RTSim

3、ldd查看Qt程序库依赖

ldd ADS-RTSim

在这里插入图片描述
如果上面某个库输出是not found,则说明ldd找不到这个库,需要将库复制到/usr/local/lib目录下

4、安装patchelf

sudo apt install patchelf

五、打包

linuxdeployqt ADS-RTSim -appimage

在这里插入图片描述
在这里插入图片描述
运行测试:

./AppRun

在这里插入图片描述
为了测试在没有搭建Qt环境的PC上能不能执行,可以将环境变量注释掉

export

在这里插入图片描述
输出这些就是有环境变量,可以使用#注释掉,然后重新export查看

没有这些输出了,然后再执行打包的Qt程序,如果能执行,那迁移到别的PC上应该也没有问题!


六、封装成deb安装包

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

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

相关文章

浅析stm32启动文件

浅析stm32启动文件 文章目录 浅析stm32启动文件1.什么是启动文件?2.启动文件的命名规则3.stm32芯片的命名规则 1.什么是启动文件? 我们来看gpt给出的答案: STM32的启动文件是一个关键的汇编语言源文件,它负责在微控制器上电或复位…

开箱即用的AI!九州未来亓绚AI教培一体机全新发布

以大模型、生成式人工智能为代表的人工智能技术在全球引起广泛关注,亦成为催生教育变革的重要力量。 中小学人工智能教育逐步推进,但实施过程中仍然面对诸多挑战。如何更广泛、高质量地开展中小学人工智能教育,成为当下我国教育改革创新的重…

CentOS7 虚谷数据库 单机版部署

单机版最低配置: 安装环境配置 1.CPU设置 关闭 CPU 超线程 查看当前CPU超线程状态: cat /sys/devices/system/cpu/smt/active 如果是0,表示超线程已关闭;返回值是1,表示超线程已开启。 切换超线程状态: &a…

景区客流统计系统提升服务精准度

在当今旅游业蓬勃发展的时代,景区面临着越来越多的挑战和机遇。如何在保障游客良好体验的同时,实现景区的高效管理和可持续发展,成为了摆在景区管理者面前的重要课题。景区客流统计系统的出现,为解决这一问题提供了有力的支持&…

vscode 打开远程bug vscode Failed to parse remote port from server output

vscode 打开远程bug vscode Failed to parse remote port from server output 原因如图: 解决:

Redis实战—附近商铺、用户签到、UV统计

本博客为个人学习笔记,学习网站与详细见:黑马程序员Redis入门到实战 P88 - P95 目录 附近商铺 数据导入 功能实现 用户签到 签到功能 连续签到统计 UV统计 附近商铺 利用Redis中的GEO数据结构实现附近商铺功能,常见命令如下图所示。…

Monsters Pack 04(游戏卡通可爱怪兽怪物战士模型)

以下模型有3种进化形态: 捕手战士 鱼卫战士 骑士战士 小鬼战士 猴东战士 无鼻战士 坑娃战士 刺头战士 树斯特战士 楔形战士 这些模型是为您的主要角色设计的敌人。进化的每个阶段都会使他变得更加强大,因此您可以用它来增强对手的实力,并作为敌人的boss。 它适用于不同类型的…

算法实验3:贪心算法的应用

实验内容 &#xff08;1&#xff09;活动安排问题 设有n个活动的集合E{1, 2, …, n}&#xff0c;其中每个活动都要求使用同一资源&#xff0c;而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi&#xff0c;且si <f…

厂家置换电费如何达到最大化收益

新能源行业知识体系-------主目录-----持续更新https://blog.csdn.net/grd_java/article/details/140004020 文章目录 一、电能电费二、同时刻不同厂家置换&#xff0c;不会影响最终电能电费结果三、风险防范补偿和回收机制四、我们的数据如何考虑补偿和回收五、如何利用补偿和…

java.lang.IllegalArgumentException: Illegal character in path at index 40解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

RFID涉密载体管控系统|DW-S402功能介绍

文件载体管控系统DW-S402是用于对各种载体进行有效管理的智能柜&#xff08;智能管理系统&#xff09;&#xff0c;实现对载体的智能化、规范化、标准化管理&#xff0c;广泛应用于保密、机要单位以及企事业单位等有载体保管需求的行业。 区域监控管理 主要是通过在需要监控的…

Mysql缓存调优的基本知识(附Demo)

目录 前言1. 配置2. 缓存3. 策略 前言 基本的知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;Mysql优化高级篇&#xff08;全&#xff09;Mysql底层原理详细剖析常见面试题&#xff08;全&#xff09; MySQL…

视图库对接系列(GA-T 1400)十九、视图库对接系列(级联)注册

背景 在上一章视图库对接系列(GA-T 1400)十八、视图库对接系列(级联)代码生成中我们已经把代码生成了,那怎么实现级联? 我们可以抓包看设备是怎么注册到我们平台的, 那我们就怎么实现就可以了。 实现 先看设备注册到我们服务端的包 步骤 注册我们可以参考视图库对接系列(…

【贪心算法】贪心算法30题

一、贪心算法简介 证明贪心策略正确性的常用方法&#xff1a;直接证明、交换论证法、反证法、分类讨论… 二、相关编程题 2.1 柠檬水找零 题目链接 860. 柠檬水找零 - 力扣&#xff08;LeetCode&#xff09; 题目描述 算法原理 提示&#xff1a;最优解和贪心解唯一可能不同…

学习大数据DAY17 PLSQL基础语法6和Git的基本操作

目录 包 存储过程调试功能 作业 阶段复习作业 Git课程目录 什么是版本控制 没有版本控制的缺点 常见的版本工具 版本控制分类 1. 本地版本控制 2. 集中版本控制 3. 分布式版本控制 Git与SVN主要区别 Git软件安装及配置 Windows系统安装Git 安装Tortoise Git(乌龟…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【获取密钥属性(C/C++)】

获取密钥属性(C/C) HUKS提供了接口供业务获取指定密钥的相关属性。在获取指定密钥属性前&#xff0c;需要确保已在HUKS中生成或导入持久化存储的密钥。 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 构造对应参数。 keyAlias&…

生成树(STP)协议

一、生成树的技术背景 1、交换机单线路上链,存在单点故障,上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,网络将面临断网。 总结:以下网络不够健壮,不具备冗余性。 2、因此引入如下网络拓扑结构: 上述冗余拓扑能够解决单点故障问题,但同时冗拓扑也带来了…

【PB案例学习笔记】-32制作一个简单记事本程序

大家好&#xff0c;我是晓凡。 写在前面 这是PB案例学习笔记系列文章的第32篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码…

【信息系统项目管理师】高项论文通用加分素材

文章目录 输入I工具与技术TT输出O 写一些增加项目真实性的问题&#xff0c;如变更、进度&#xff08;范围蔓延、进度延后怎么处理、好几个项目并行资源协调&#xff09;||成本、沟通&#xff08;跨部门沟通&#xff09; 在保障真实性的同时选的项目紧跟潮流 要能看出实际经验 …

GB35114国密算法-GMSSL

C有个三方库-GMSSL是可以进行GB35114所需要的SM2、SM3、SM4等加解密算法的&#xff0c;但是使用国密算法是需要申请报备的 GmSSL是由北京大学自主开发的国产商用密码开源库&#xff0c;实现了对国密算法、标准和安全通信协议的全面功能覆盖&#xff0c;支持包括移动端在内的主流…