linux下将qt程序打包成appimage程序

一.环境准备

1.1下载linuxdeployqt的程序(打包qt程序的工具)

https://github.com/probonopd/linuxdeployqt/releases

下载appimage的包linuxdeployqt-7-x86_64.AppImage

下载下来更改一下权限sudo chmod 777 linuxdeployqt-7-x86_64.AppImage
arm的话,自行编译吧

1.2下载appimagekit(appimage工具)

https://github.com/AppImage/AppImageKit/releases/

下载appimage的包appimagetool-x86_64.AppImage

下载下来更改一下权限sudo chmod 777 appimagetool-x86_64.AppImage

1.3本地环境安装

sudo apt install patchelf

1.4配置qt的位置

sudo vim ~/.bashrc {编辑 ~/.bashrc}

配置qt5的环境

这里配置的qt环境由于我是使用deepinV20.2系统,系统自带qt5.15,我就才用了系统的环境

如果是自行安装的采用自行安装的路径即可

export PATH=/usr/lib/x86_64-linux-gnu/qt5/bin:$PATH

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

export QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins:$QT_PLUGIN_PATH

export QML2_IMPORT_PATH=/usr/lib/x86_64-linux-gnu/qt5/qml:$QML2_IMPORT_PATH

二.开始打包

2.1编译出可执行程序(realease版本)

获得可执行程序,将可执行程序拷贝到随便一个文件夹

这里就拷贝到文件夹11内

2.2linuxdeployqt发力

在这里linuxdeployqt-7-x86_64 登场

直接对可执行程序进行操作

./linuxdeployqt-7-x86_64.AppImage 程序目录/程序 -appimage

报错了,因为glic版本问题

如果glic>=2.27,你就需要加上参数 -unsupported-allow-new-glibc (意思就是不再低版本发行版使用了)或 -unsupported-bundle-everything(大概的意思是尝试兼容,实际测试,到其他发行版直接用不了了,有可能是发行版的原因,还是建议用前者,虽然放弃了低版本)

-unsupported-bundle-everything: 捆绑所有依赖库,包括 ld-linux.so 加载器和 glibc。这将允许构建在较新系统上的应用程序在较旧的目标系统上运行,但不建议这样做,因为它会导致捆绑包超出所需的大小(并且可能到其他发行版无法使用)
-unsupported-allow-new-glibc:允许 linuxdeployqt 在比仍受支持的最旧 Ubuntu LTS 版本更新的发行版上运行。这将导致 AppImage无法在所有仍受支持的发行版上运行,既不推荐也不测试或支持

./linuxdeployqt-7-x86_64.AppImage 程序目录/程序 -appimage -unsupported-allow-new-glibc

./linuxdeployqt-7-x86_64.AppImage 程序目录/程序 -appimage -unsupported-bundle-everything

大部分的依赖项都到了该程序目录内

2.3修改desktop

因为默认生成的desktop存在问题,直接使用appimagetool打包会出现以下显示

appimagetool, continuous build (commit effcebc), build 2084 built on 2019-05-01 21:02:41 UTC
WARNING: appstreamcli command is missing, please install it if you want to use AppStream metadata
Categories entry not found in desktop file
.desktop file is missing a Categories= key

他提醒你,缺少Categories= key,由于我们是qt程序,大部分是application,所以一般都是这样增加配置

Categories=Application;

更改名字那些就是跟freedesktop的教程一样,这里提供一个吗模板

[Desktop Entry]
Categories=Application;
Comment=x11opacity-tool
Comment[zh_CN]=linux窗口透明工具
Encoding=UTF-8
Exec=AppRun %F
GenericName=x11opacity-tool
GenericName[zh_CN]=linux窗口透明工具
Icon=default
Name=x11opacity-tool
Name[zh_CN]=linux窗口透明工具
StartupNotify=false
Terminal=false
Type=Application

修改了desktop文件

2.4appimagetool发力

执行 ./appimagetool-x86_64.AppImage 程序目录

生成成功!!,一个appimage包就打好了

执行
这里应该是跨发行版执行

联系我

liuminghang0821@gmail.com

linux下将qt程序打包成appimage程序相关推荐

  1. labview如何弹出提示窗口_以实例跟我学如何将LabVIEW的VI程序打包成安装程序

    当我们在LabVIEW平台上辛辛苦苦编写完成测试软件程序时,一般很少情况将程序源代码分发给用户,而是将VI程序制作成可执行的安装包程序,供用户安装使用. 那么,如何将LabVIEW中的VI程序打包成安 ...

  2. QT程序打包成应用程序方法(Windeployqt)

    QT项目打包发布步骤(Windeployqt) 1.选择Release版本发布生成工程文件 2.拷贝可执行文件 找到生成的Release文件夹,将根目录下的Release文件夹中的test.exe文件 ...

  3. java 程序打包成jar_Java程序打包成jar包

    二.打包成可运行的jar包 要打包成可运行的jar包,有两种方法,一是手动创建MANIFEST.MF文件,并在其中指定主类;二是使用jar的-e参数指定可运行jar包的入口点(即main类的完全名称) ...

  4. PyInstaller来将python程序打包成exe程序及其图标自定义以及ico文件的简单制作

    pip install Pyinstaller 当然首先要安装pyinstaller这个包然后才能使用啦 这是一个自动玩别踩白块的python程序的简单实现 *** https://u.ali213. ...

  5. python打包成exe_python 程序打包成exe程序

    上一篇文章讲了如何实现一个简单的计算器程序,肯定你也想能不能做成像电脑桌面软件一样,不用安装python运行环境也可以运行,同时也可以分享给有需要的人. 下面就来一起试试,具体步骤如下: 1.打开cm ...

  6. QT-将应用程序打包成安装程序

    1.使用的打包工具:Inno Setup Compiler 2.下载地址:https://jrsoftware.org/isdl.php#stable 3.打包全过程: 第一步: 第二步: 第三步:

  7. python打包成.exe程序

    一.需求 有些时候,我们想做个带图形化界面的小工具用于pc端,使用MFC当然可以,java也有何不可,那么使用python呢?是否也可以把带有图形化界面的python程序打包成.exe程序?答案是肯定 ...

  8. linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件

    linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件 xuxiang 7 2019-09-18 21:07 下文中提及的inu ...

  9. asp打开exe执行本地程序._基于QT应用程序打包成可执行程序exe

    [本文属原创,转载请附上原文出处链接.] 众所周知QT编译好的应用程序依赖很多动态链接库,不能方便的在其他PC上使用.这里介绍QT5版本的应用程序打包成可执行EXE的方法. 首先把QT应用程序项目编译 ...

最新文章

  1. 【小白的CFD之旅】20 计算区域的构建
  2. Developing a blockchain framework for the automotive supply chain: A systematic review 汽车供应链区块链
  3. 被丧心病狂的验证码虐过,来感受一下交互体验很好的十款吧
  4. C++类中成员变量的初始化总结
  5. python中使用Django对url路径进行处理
  6. 转:ubuntu或linux网卡配置/etc/network/interfaces
  7. c语言实现 网络嗅探程序代码,一个简易网络嗅探器的实现源代码.doc
  8. 在网上找来的几个大牛,忽然觉得自己来参加ACM倒也不是一件错误的事情,梦想总是要有的,万一成了呢。
  9. java path环境变量_java配置环境变量
  10. stata 空间杜宾模型_利用STATA创建空间权重矩阵及空间杜宾模型计算----命令
  11. 三菱fx2n做从站的modbus通讯_三菱PLC的通讯与编程,附实际案例
  12. NET 常见网络命令
  13. 树莓派用python一键签到百度贴吧
  14. 深圳市及各区人才补贴
  15. 高通MSM8255 GPS 调试分析Android系统之Broadcom GPS 移植【转】
  16. Flink 的功能模块有哪些?
  17. 058 不定积分计算工具总结
  18. sau交流学习社区-songEagle开发系列:Vue + Vuex + Koa 中使用JWT(JSON Web Token)认证
  19. 进入Baxter仿真环境
  20. 【重点突破】—— UniApp微信小程序开发教程学习Three

热门文章

  1. scrapyd布署爬虫项目(继上篇)
  2. 「镁客·请讲」傲意科技倪华良:肌电识别是下一代的人机交互方式
  3. 计算机窗口基础,计算机基础知识:计算机中窗口的基本操作
  4. C语言图形化终极(基本贴图、切割贴图、透明贴图)
  5. Easyx实现png透明贴图的两种方法(无需掩码图)
  6. phonton的配置
  7. DVWA-文件包含漏洞
  8. 实战:基于霍夫变换进行线检测
  9. MySQL常见的数据类型
  10. 小肚皮最新版本_小肚皮官方下载