Linux QT GUI 界面程序打包 linuxdeployqt

2023-10-27

说明:

1.主要依赖linuxdeployqt打包工具

2.打包Linux上的QT界面软件,使其不依赖QT开发环境

linuxdeployqt安装过程:

  • 不能下载官方编译好的.appimage文件,会报告gblic的问题
  • 下载官方源码
  • 修改main.cpp,屏蔽掉版本判断部分,否则还会报gblic的问题

编译安装过程:

1.根目录下:cmake CmakeList.txt

2.make   //此时tool/linuxxxxx下会生成linuxdeployqt可执行的二进制文件,

3.将linuxdeployqt可执行文件复制到/usr/local/bin,之后  sudo chmod 777 linuxdeployqt

参考链接:

(本人实测!)Linux下使用linuxdeployqt打包Qt项目用于移植 - 灰信网(软件开发博客聚合)

Ubuntu下使用linuxdeployqt打包Qt程序 - 星星,风,阳光 - 博客园

其他工具:

1. patchelf

sudo apt install patchelf

2. appimage

https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage

 下载完成后执行如下命令:

sudo mv appimagetool-x86_64.AppImage appimagetool

chmod 777 appimagetool

sudo./appimagetool /usr/local/bin

以上安装完成后进入usr/local/bin目录执行ls其中包含如下三个则说明打包工具安装成功,之后就可以开心的进行项目移植打包喽!

可能报错:

1.ERROR: "/usr/bin/qmake -query" exited with 1 : "qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory\n   找不到qt

分析:

 qtchooser默认选择路径中没有指向qmake路径,需修改成自己的路径

解决方法:

cd /usr/lib/x86_64-linux-gnu/qt-default/qtchooser

vim default.conf

打包过程:

1.创建一个collectdabao文件夹,考入datacollect文件(QT-release模式下编译形成的可执行文件)

2. linuxdeployqt  datacollect --appimage

3.此时该目录下会有lib doc plugins translations文件夹等众多so文件

4.修改或创建./desktop文件,复制到桌面,chmod 777     双击----信任此文件

./desktop 内容

[Desktop Entry]

Encoding=UTF-8

Name=COLLECT

Exec=/home/mlw/Desktop/collectdabao/datacollect  #根据软件的具体执行路径修改,务必是绝对路径

#Icon=/home/home/Desktop/icon.png  #根据软件的具体执行路径修改

Terminal=false  #软件打开时是否启动终端

StartupNotify=false

Type=Application

Categories=Application;Development;

更新软件包注意事项

  • 不能只更新datacollect可执行文件,需重新执行打包
  • 打包后将目标机器内的所有文件进行更新

更新流程:

1.QT-relese编译,生成新的datacollect文件

2.cp datacollect  到打包文件夹

3.在打包文件夹执行linuxdeployqt  datacollect -appimage

4.传输文件夹下所有文件到目标机软件目录

   sudo scp * mlw@192.168.1.244:~/Desktop/collectdabao 

打包结果(有两种,目前没搞懂原因):

可能由于linuxdeployqt版本原因,产生结果不一样

1.更好的结果

生成.AppImage结尾的文件,这个文件可以直接运行

2.较差的结果,可能还会依赖QT

生成新的可执行文件和.desktop文件,需要修改.desktop里面的路径

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux QT GUI 界面程序打包 linuxdeployqt 的相关文章

  • Apache 2 中的“捕获 SIGWINCH”错误是什么?

    我的服务器 ubuntu 8 04 LAMP运行drupal 6 当流量较高时 它会停止提供页面 重新启动apache2将不起作用 所以我必须重新启动该服务 我在 apache2 error log 中找到了这条消息 通知 捕获SIGWIN
  • 如何使用 Cloud Init 挂载未格式化的 EBS 卷

    Context 我正在使用https wiki jenkins io display JENKINS Amazon EC2 Plugin https wiki jenkins io display JENKINS Amazon EC2 Pl
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • Shift 键在我的 emacs 中不起作用

    I run emacs in gnome terminal with nw option it works well except for some key shortcuts that include the shift key For
  • 如何在 ubuntu 上将 phantomjs 1.9.8 更新到 phantomjs 2.1.1?

    我无法在 ubuntu 16 04 上重新安装 phantomjs 1 9 8 至 2 1 1 版本 请帮忙 1 9 8 当我编写旋转函数时出现错误 在文档中看到这个问题我可以通过重新安装来解决 我刚刚在 ubuntu 16 04 中安装了
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • Ubuntu 中的颜色选择器实用程序(颜色移液器)[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过
  • 检查已安装的软件包,如果没有找到则安装

    我需要检查已安装的软件包 如果未安装则安装它们 RHEL CentOS Fedora 示例 rpm qa grep glibc static glibc static 2 12 1 80 el6 3 5 i686 如何在 BASH 中进行检
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设

随机推荐

  • 【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令

    文章目录 whereis help man find locate grep wc 管道 whereis 功能描述 寻找命令的二进制文件 同时也会找到其帮助文件 主要功能是寻找一个命令所在的位置 和find相比 whereis查找的速度非常
  • Linux下安装Jupyter并配置多个ipykernel

    安装Jupyter pip3 install jupyter notebook 或者 pip install i https pypi douban com simple jupyter 生成配置文件 jupyter notebook ge
  • Qt开源库-工具选项卡-【TabToolBar】

    一 序言 对于Windows 的文件管理器的菜单栏 设计得很漂亮 如下图所示 本文分享一个用于开发类似于Windows 文件管理器菜单栏的Qt开源库 TabToolBar 开源项目URL https github com SeriousAl
  • idea创建Gradle项目

    Gradle是什么 Gradle是一种以Groovy语言为基础的自动化构建工具 自动化构建本质上也是一种程序 我们开始编译时就启动这个程序 然后读取我们在 gradle 文件中配置的参数来实例化各个类 然后按照顺序依次执行对应的任务即可完成
  • CSS样式大全(网络收集整理)

    CSS样式大全 网络收集整理 字体属性 font 大小 font size x large 特大 xx small 极小 一般中文用不到 只要用数值就可以 单位 PX PD 样式 font style oblique 偏斜体 italic
  • MyBatis动态拼接sql,statementType="STATEMENT"使用

    背景 写一个需求 展示数据的结果需要将查询出来的结果列转行 但是发现需要列转行的数据是动态的 没办法确定有多少个 所以需要动态的拼接sql处理 起初设想是在MyBatis里面去动态拼接 然后尝试多次放弃了 要动态拼接的sql如下 下面是静态
  • [转]QNX-Momentics-IDE开发环境设置-功能调试

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 锋影 email 174176320 qq com 一 QNX M
  • CMake中引用Boost库

    CMake中引用Boost库 文章目录 概述 CMakeLists txt编写 find package 搜索路径设置 用例 Boost动态库链接 Boost头文件库链接 概述 在Linux开发时常常使用Boost库 若项目使用CMake进
  • 汇通达港交所上市:市值超240亿港元 阿里与顺为是股东

    雷递网 雷建平 2月18日报道 汇通达网络股份有限公司 简称 汇通达 股票代码为 09878 今日在港交所上市 汇通达此次引入6家基石投资者 包括创维 商汤 景林 金螳螂建筑 Windfall 海澜集团 设有6个月禁售期 上述基石投资者一共
  • 热点|ChatGPT到底是什么,ChatGPT给通信行业带来什么影响

    最近这段时间 ChatGPT火爆全网 引发了整个社会的强烈关注 这个来自OpenAI公司的聊天机器人 表现出了极为逆天的人工智能水平 让所有人为之震惊 其实 对人工智能 以下简称 AI 的能力 人类是有心理准备的 数十年来 我们观看的很多影
  • 简单的CSS案例——新闻介绍

  • C++删除文件

    使用remove函数删除本地文件 头文件 include
  • C++类模板实例化与专门化

    12 8 C 类模板实例化与专门化 12 8 1 隐式实例化 编译器只有在生成模板对象的时候才会生成模板类的实例化类定义 然后根据实例化类生成对象 12 8 2 显式实例化 12 8 2 1 定义 使用关键字template并指定类型的语句
  • unsigned char 类型数据似乎不能用作赋值

    unsigned char 类型的数据似乎不能用作赋值的量 起初我以为给unsigned char类型的数组赋值也要用unsigned char类型的变量才行 include
  • thinkphp的debug调试开启、关闭

    官方文档 https www kancloud cn manual thinkphp6 0 1037618 前言 强烈建议在开发阶段始终开启调试模式 直到正式部署后关闭调试模式 方便及时发现隐患问题和分析 解决问题 开启 如果你是通过 Co
  • 4月程序员薪资出炉,又又又拖后腿了?

    无论你等或不等 4月全国程序员就业薪资排行榜都已经来了 在这次的排行中 北京以18094元排行第一名 杭州 南京等新一线城市的排名表现不错 甚至超过一线城市广州 快来看看你拖城市后腿了没有 来源网络 如侵删 从城市排行中可以看到 现在程序员
  • CUDA Samples: Long Vector Add

    以下CUDA sample是分别用C 和CUDA实现的两个非常大的向量相加操作 并对其中使用到的CUDA函数进行了解说 各个文件内容如下 common hpp ifndef FBC CUDA TEST COMMON HPP define F
  • mybatis的一些特殊符号标识(大于,小于,等于,不等于)

    特殊字符 替代符号 红色基本为常用的 amp lt lt gt gt quot apos 小于等于 a lt b a lt b a b 大于等于 a gt b a gt b a b 不等于 a ba b a
  • 【allegro 17.4软件操作保姆级教程十一】表贴器件封装制作

    个人主页 highman110 作者简介 一名硬件工程师 持续学习 不断记录 保持思考 输出干货内容 目录 封装组成元素 焊盘类型 表贴器件封装制作 环境设置 计算坐标 放置pin脚 绘制丝印线 放置位号和value 放置1脚标识 放置其他
  • Linux QT GUI 界面程序打包 linuxdeployqt

    说明 1 主要依赖linuxdeployqt打包工具 2 打包Linux上的QT界面软件 使其不依赖QT开发环境 linuxdeployqt安装过程 不能下载官方编译好的 appimage文件 会报告gblic的问题 下载官方源码 修改ma