Linux下Qt程序打包

文章目录

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

一、前言

在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

在这里插入图片描述

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

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

相关文章

7.SpringBoot整合Neo4j

1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-neo4j</artifactId> </dependency> 说明&#xff1a;这里引入neo4j的版本跟spring框架的版本有关系。需要注意不同的版本在neo…

【java】力扣 买卖股票的最佳时机 动态规划

文章目录 题目链接题目描述思路代码 题目链接 121.买卖股票的最佳时机 题目描述 思路 本题主要用到了动态规划 1.先定义dp数组的含义 先定义一个二维数组dp 然后dp[i][0]来表示第i天持有股票的现金 dp[i][1]代表第i天不持有股票的现金 刚开始的现金为0&#xff0c;当第i天买…

USB协议详解

参考&#xff1a;USB协议详解_一个早起的程序员的博客-CSDN博客

RPC 的原理和示例

RPC&#xff08;远程过程调用&#xff09;是一种在不同计算机之间进行通信的技术&#xff0c;使得程序可以请求远程服务器上的服务就像调用本地服务一样。RPC抽象了网络通信的细节&#xff0c;让开发者能够更专注于实现业务逻辑。 为什么使用RPC&#xff1f; 抽象化通信过程&…

CentOS 7 Web面板的文件管理器说明

在使用CentOS 7 Web Panel&#xff08;CWP7&#xff09;时&#xff0c;偶尔要求在服务器曲面上修改&#xff0c;创建&#xff0c;编辑或删除文件。 最简单&#xff0c;最直接的方式是通过利用CWP7的内置文件管理器。 本文将详细介绍如何启动它&#xff0c;使用它&#xff0c;以…

利用OSMnx进行城市路网数据的速度与通行时间推算及分析

本文还是以广州市路网为例&#xff0c;通过osmmx调用ox.add_edge_speeds(G)时&#xff0c;该函数会遍历图G 中的每条边&#xff08;即每条街道&#xff09;&#xff0c;并基于一些预设的规则或街道属性&#xff08;如街道类型、是否为主要道路、是否有速度限制等&#xff09;来…

Golang | Leetcode Golang题解之第235题二叉搜索树的最近公共祖先

题目&#xff1a; 题解&#xff1a; func lowestCommonAncestor(root, p, q *TreeNode) (ancestor *TreeNode) {ancestor rootfor {if p.Val < ancestor.Val && q.Val < ancestor.Val {ancestor ancestor.Left} else if p.Val > ancestor.Val && q…

十五、【文本编辑器(一)】代码框架

目录 一、QMainWindow基本构成 二、项目框架代码 三、菜单与工具栏的实现 四、总结 一、QMainWindow基本构成 QMainWindow 是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏 (menu bar)&#xff0c;多个工具栏(tool bars)&#xff0c;多个锚接部件 (dock widgets…

近源渗透简介

什么是近源渗透 通过乔装、社工等方式实地物理侵入企业办公区域&#xff0c;通过其内部各种潜在攻击面&#xff08;如Wi-Fi网络、RFID门禁、暴露的有线网口、USB接口等&#xff09;获得“战果”&#xff0c;最后以隐秘的方式将评估结果带出上报&#xff0c;由此证明企业安全防…

最新版康泰克完整版- Kontakt v7.10.5 for Win和Mac,支持m芯片和intel,有入库工具

一。世界最受欢迎的采样器的新篇章 Native Instruments Kontakt是采样器领域的标准&#xff0c;您将获得高质量的滤波器&#xff0c;在这里您将找到经典的模拟电路和最现代的滤波器。每一个都可以根据您的口味进行定制&#xff0c;并且由于它&#xff0c;您可以获得前所未有的声…

Ubuntu上卸载Nginx步骤操作

停止Nginx服务&#xff1a; sudo systemctl stop nginx删除Nginx软件包&#xff1a; sudo apt-get remove --purge nginx nginx-common这条命令会删除Nginx及其配置文件。 清理依赖项&#xff1a; sudo apt-get autoremove这会删除Nginx安装时可能安装的依赖项&#xff0c;…

debian12 允许远程ssh登录

1、查看ssh服务是否在运行 systemctl status ssh 如果没有安装ssh服务&#xff0c;可以通过以下命令安装&#xff1a; apt install openssh-server 如果服务没有运行&#xff0c;通过以下命令重启ssh服务&#xff1a; systemctl restart ssh 2、编辑配置文件 vim /etc/ss…

DROO论文笔记

推荐文章DROO源码及论文学习 读论文《Deep Reinforcement Learning for Online Computation Offloading in Wireless Powered Mobile-Edge Computing Networks》的笔记 论文地址&#xff1a;用于无线移动边缘计算网络在线计算卸载的深度强化学习 论文代码地址&#xff1a;DR…

数组去重(去重+单调栈 用boolen instack来去重

如果存到一个小的就把比它大的都pop出去&#xff0c;在后面还有的情况下&#xff0c;如果后面没有就不pop了 class Solution {public String removeDuplicateLetters(String s) {Stack<Character> stacknew Stack<>();int[] countnew int[256];boolean[] inStackn…

使用 Vue3、Node.js、MySQL、Electron 和 Express 实现用户登录、文章管理和截屏功能

在现代 Web 开发中&#xff0c;前后端分离的架构已经成为主流。本文将详细介绍如何使用 Vue3、Node.js、MySQL、Electron 和 Express 实现一个完整的用户登录、文章管理和截屏功能的应用。我们将从项目的初始化开始&#xff0c;逐步实现各个功能模块&#xff0c;并提供详细的代…

泰迪智能科技江西大数据实验室成功案例介绍说明

高校大数据实验室作为作为支撑高校人培方案实施的核心设施&#xff0c;实验室的建设一定要与学科建设、人才培养充分融合&#xff0c;是一个包含物理空间硬件资源软件资源课程内容的系统化工程。高校在实验室规划过程中&#xff0c;第一要务就是从学科定位出发、结合学校的特色…

14_Shell重定向输入输出

14_Shell重定向输入输出 输出重定向&#xff1a;一般情况&#xff0c;输出是在终端直接显示&#xff0c;改变输出位置&#xff0c;改变到文件中&#xff0c;这就是输出重定向 输入重定向&#xff1a;一般情况&#xff0c;输入是读取用户终端输入&#xff0c;改变输入位置&#…

图解PyTorch中的Transpose操作

在PyTorch中&#xff0c;我们时常会对张量进行转置操作。若张量是二维的&#xff0c;则非常容易理解。若张量维度更高&#xff0c;则会令人摸不到头脑。 高维张量究竟是怎么转置的&#xff1f;简单来说&#xff0c;就是将参与转置的维度抽出来&#xff0c;将内侧的子张量视为一…

js判断是否包含某些字符串中的一个

被判断的字符串是由逗号和中文拼接成的字符串&#xff0c; 编写一个js来校验一个字符串是否包含“纪委书记”&#xff0c;“纪检专岗”&#xff0c;“纪律检查室主任”&#xff0c;判断是否包含这三个字符串中的一个&#xff0c;包含其中一个就为true&#xff0c;多字少字都不算…

【C++PythonJava】字符处理详细解读_字符_ASCLL码_字母数字转换_算法竞赛_开发语言

文章目录 Beginning1&#xff09;ASCLL 码2&#xff09;大小比较2&#xff09;判断数字字符3&#xff09;字符、数字间的相互转换End Beginning 在 C 中&#xff0c;字符和整数有着密不可分的关系。原因就是在计算机中&#xff0c;字符是以一种较 ASCLL 码的整数存储的。自然&…