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

10 篇文章 0 订阅
1 篇文章 0 订阅

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

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
Linux系统下,有两种常用的方法可以打包QT程序。 第一种方法是通过脚本进行打包。这种方法简单方便,但是打包程序不能在其他干净的Linux系统中运行。你可以参考中提到的方法,编写一个脚本文件来进行打包。具体步骤如下: 1. 首先,确保你已经安装了所需的依赖库。你可以使用ldd命令来查找程序所需的共享库。 2. 创建一个脚本文件,可以使用任何你熟悉的文本编辑器。在脚本文件中,你需要指定程序的入口点以及程序所需的共享库路径。 3. 接下来,使用chmod命令给脚本文件添加可执行权限。 4. 最后,运行脚本文件来进行打包打包后,你会得到一个包含可执行文件和所需共享库的目录。 但需要注意的是,通过这种方式打包QT程序不能在其他干净的Linux系统中运行,所以不太推荐使用。 第二种方法是使用linuxdeployqt工具进行打包。这个工具可以方便地将QT程序打包一个独立的可执行文件,可以在任何Linux环境中直接运行。你可以从中提供的链接下载linuxdeployqt。 使用linuxdeployqt进行打包的步骤如下: 1. 首先,下载并解压linuxdeployqt工具。 2. 将你的QT程序复制到linuxdeployqt的目录中。 3. 打开终端,并切换到linuxdeployqt的目录。 4. 运行以下命令来打包程序: ``` ./linuxdeployqt <path_to_your_qt_program> -appimage ``` 其中,`<path_to_your_qt_program>`是你的QT程序的路径。 5. 打包后,你将得到一个AppImage文件,这个文件就是你的打包好的程序。 通过使用linuxdeployqt工具进行打包,你可以得到一个可以在任何Linux环境中直接运行的QT程序。这种方法更加方便和可靠,推荐使用。 参考文献: 目前我接触到的Linux下的QT程序打包方法主要有两种:第一种:通过脚本进行打包,这种方法简单方便,但是通过这种方式打包QT程序,并不能放到另一台干净的Linux系统下运行,所以不太推荐;第二种:通过Linuxdeployqt进行打包,通过这种方法打包QT程序也很方便,而且打包程序可以放到任何Linux环境下直接运行。下面我将详细介绍以下两种打包方式,大家可以根据自己的实际使用情况任意选择打包方式。 1.下载linuxdeployqt:https://github.com/probonopd/linuxdeployqt/releases

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏有凉风,冬有雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值