首页 > 系统相关 >ubuntu 使用linuxdeployqt打包Qt程序

ubuntu 使用linuxdeployqt打包Qt程序

时间:2025-01-14 17:30:42浏览次数:3  
标签:可执行文件 文件 Qt xxx 程序 linuxdeployqt ubuntu 打包

文章目录

准备工作

  1. 下载linuxdeployqt
  1. 配置linuxdeployqt

    • 将下载得到的xxx.Appiamge,移动到/usr/local/bin目录下,这样,我们就可以在其他目录访问了

    • 为了方便使用我们可以将其改一下名字并加上权限

      mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt
      mv linuxdeployqt /usr/local/bin
      

    • 输入查看版本没有问题就可以正常使用了,
      在这里插入图片描述

  2. 获取可执行文件

  • 准备好程序的realse环境下的可执行文件,使用qtcreator或者vsode的IDE都行,找到build目录下的可执行文件
    在这里插入图片描述

  • 将这个执行文件拷贝到一个空文件夹下,并进入到这个文件夹

    在这里插入图片描述

打包

  • 完成上述步骤后输入以下指令进行程序打包,中间的为你的可执行文件名

    linuxdeployqt hmi -appimage
    
  • 执行完成后
    在这里插入图片描述

  • 这样其实就可以了,但是我们可以看到它有俩个error,其实这并有关系 一个是没有 .desktop 文件,这个是linuxdeployqt的一个配置,后续可以再次编辑,一个是没有设置图标也是后续可再次编辑的。

  • 打包后整个目录如下显示

    在这里插入图片描述

  • 我们执行AppRun文件就行了

遇到的问题

  • 因为linuxdeployqt将在内部使用ldd命令,来确定从何处将库复制到包中。ldd命令本身只能查找隐式加载的so,故若程序中代码使用显式加载的so,它是找不到的,需要自己手动的加入。(这个和你写的cmakelist或者pro文件的关系很大)

  • 比如我现在运行程序直接报错了,因为我程序里面使用了glog,所以很明显的看出是少了vlc的相关库

    在这里插入图片描述

  • 这时候我们可以先使用ldd指令查看原本的可执行文件链接了哪些库(找到库的路径复制进来)

    在这里插入图片描述

  • 找到这个库的 如何复制到lib文件夹下,至此程序打包完成,应可正常启动。

配置启动

  • 新建一个xxx.desktop文件,内容如下
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=clash
Exec=xxx/AppRun  #AppRun路径
Icon=xxx/default.png #图标路径
  • 将该文件拷贝到.local/share/applications
  • 这样你就可以直接在应用程序里面中找到并双击启动了

标签:可执行文件,文件,Qt,xxx,程序,linuxdeployqt,ubuntu,打包
From: https://blog.csdn.net/weixin_49065061/article/details/145143182

相关文章

  • 物联网毕设 -- 智能窗帘(STM32+APP+语音识别+MQTT)
    目录 前言一连线图1.原理图2.PCB效果3.实物效果4APP效果5功能概括(1)硬件端(2)APP端(3)云平台使用(阿里云)(需要可以找我获取)(4)演示视频二底层代码使用方式1.使用说明2.下载程序三APP使用方式1下载APP四程序架构及修改(通用) 前言智能窗帘系统通过STM32......
  • window10 powsershell 安装ubuntu22.04
     参考  https://learn.microsoft.com/en-us/windows/wsl/basic-commands#install      https://learn.microsoft.com/en-us/windows/wsl/install ListavailableLinuxdistributions  wsl--list--online以下是可安装的有效分发的列表。使默认分发用......
  • qt报错: Could not load the Qt platform plugin "xcb"
    QObject::moveToThread:Currentthread(0x2550470)isnottheobject'sthread(0x3fa6050).Cannotmovetotargetthread(0x2550470)qt.qpa.plugin:CouldnotloadtheQtplatformplugin"xcb"in"/home/hs/dl/env/miniconda3/envs/pytorch-......
  • moredoc魔豆文库系统搭建ubuntu
    系统:ubuntu:20.04软件:moredoc-ce:3.2.0根据官方手册进行安装https://www.bookstack.cn/read/moredoc/install-linux.mdMySQL安装及问题处理ubuntu更新系统aptupdateaptupgrade-y安装MySQLaptinstall-ymysql-serveraptinstall-ylibmysqlclient-dev启动MySQ......
  • 【树莓派5】香瓜树莓派5之Home Assistant(ZHA+ Zigbee2MQTT)控制zigbee开关(有线+无线)
    本文最后修改时间:2024年07月04日一、本节简介本节以树莓派5为例,安装HomeAssistant系统并且进行配置,通过两种协议方式(ZHA+Zigbee2MQTT)控制zigbee网关,连接zigbee开关(有线+无线)来控制灯的亮灭。二、实验平台1、硬件平台1)树莓派5开发板套件①树莓派5开发板②SD卡(32G)③mir......
  • (经过验证)在 Ubuntu 系统中为 VSCode、PyCharm 终端及 Jupyter Notebook 配置代理的完
    文章目录1.通过系统环境变量配置代理步骤一:打开终端步骤二:编辑`~/.bashrc`文件步骤三:添加代理环境变量步骤四:保存并关闭文件步骤五:使配置生效步骤六:重启相关应用步骤七:使用代理函数2.在VSCode中配置代理步骤一:打开设置界面步骤二:搜索代理设置步骤三:添加代理配置步......
  • ubuntu22.04系统Docker安装
    1、配置docker源#AddDocker'sofficialGPGkey:apt-getupdateapt-getinstallca-certificatescurlinstall-m0755-d/etc/apt/keyringscurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg-o/etc/apt/keyrings/docker.ascchmoda+r/etc/apt/keyrings......
  • Qt多线程开发全解析
     目录一、引言二、Qt多线程基础概念2.1线程与进程2.2Qt中的线程类三、Qt多线程的使用场景3.1耗时操作处理3.2实时数据处理3.3多任务并发执行四、Qt多线程的实现方式4.1继承QThread类4.2使用QThreadPool线程池4.3利用QtConcurrent框架五、线程间的同步......
  • Qt 视口和窗口
    一、概述:1、绘图设备的物理坐标,是最基本的坐标系,原点(0,0)在左上角,x轴正方向水平向右,y轴正方向竖直向下,单位是像素。2、视口(Viewport)表示绘图设备的任意一个矩形区域,视口可以让我们只在关心的区域绘图。定义视口用的是物理坐标,默认情况下视口等于绘图设备的整个矩形区。......
  • Qt 自定义控件(Qt绘图)
    一、QPaintEvent绘图事件1、QPaintEvent是Qt框架中一个重要的事件类,专门用于处理绘图事件。2、当Qt视图组件需要重绘自己的一部分时,就会产生QPaintEvent事件。3、Qt视图组件重绘自己,通常发生在以下情况: (1)、窗口第一次显示时:当窗口或控件第一次出现在屏幕上时,系统会生......