使用linuxdeploy-x86_64.AppImage打包QT应用程序的步骤

使用AppImage打包名为irSync的QT应用程序的重新生成步骤

应用程序名为myApp  icon名为:logo.png
1.创建一个名为PacketAppDir的文件夹。

2.准备myApp.desktop文件,文件内容为:

[Desktop Entry]
Version=1.0
Type=Application
Name=myApp
Exec=myApp
Icon=logo
Categories=Utility;

3.准备脚本文件AppRun,内容如下

#!/bin/bash
#  设置应用程序的环境变量
export LD_LIBRARY_PATH=$APPDIR/usr/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$APPDIR/usr/plugins

exec $APPDIR/usr/bin/myApp "$@"
 

4.在PacketAppDir文件夹中创建如下目录结构

   PacketAppDir/

     |----usr/

     |        |-------bin/

     |                    |___myApp

     |        |-------plugins/将需要用到的插件放入此处

     |        |-------lib/将需要用到的类库放入此处

     |        |-------share/

     |                   |___applications/

     |                           |___myApp.desktop

     |                   |___icons/

     |                           |___logo.png

需要用到的类库 插件用ldd命令列出:

举例:

运行:ldd  myApp

显示:linux-vdso.so.1 (0x00007ffef795c000)
    libdl.so.2 => /home/drs/irSyncPacket/usr/bin/./../lib/libdl.so.2 (0x00007f9c370c6000)
    libQt5Widgets.so.5 => /usr/local/qt-qt-5.15.2/lib/libQt5Widgets.soexport QT_PLUGIN_PATH=$APPDIR/usr/plugins.5 (0x00007f9c36a4d000)
    libQt5Gui.so.5 => /usr/local/qt-qt-5.15.2/lib/libQt5Gui.so.5 (0x00007f9c3641d000)
    libQt5Network.so.5 => /usr/local/qt-qt-5.15.2/lib/libQt5Network.so.5 (0x00007f9c36286000)
    libQt5Sql.so.5 => /usr/local/qt-qt-5.15.2/lib/libQt5Sql.so.5 (0x00007f9c36249000)
    libQt5Core.so.5 => /usr/local/qt-qt-5.15.2/lib/libQt5Core.so.5 (0x00007f9c35cf3000)
    libGL.so.1 => /home/drs/irSyncPacket/usr/bin/./../lib/libGL.so.1 (0x00007f9c35a3e000)
    libpthread.so.0 => /home/drs/irSyncPacket/usr/bin/./../lib/libpthread.so.0 (0x00007f9c35a15000)

列表中涉及到的库都需要放入usr/lib目录中进行打包

5.打开终端,切换到irSyncPacket.AppDir文件夹所在的目录。

8.运行以下命令将应用程序打包为AppImage:
chmod +x AppRun
chmod +x myApp


/home/drs/下载/linuxdeploy-x86_64.AppImage --appdir /home/drs/PacketAppDir --output appimage

9.打包过程完成后,将会在当前目录生成一个名为PacketAppDir-x86_64.AppImage的文件。
10.运行AppImage:

给AppImage文件添加可执行权限:
chmod +x PacketAppDir-x86_64.AppImage
运行应用程序:
./PacketAppDir-x86_64.AppImage

执行打包后的AppImage出现错误
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, webgl, xcb.

已放弃


设置 export QT_DEBUG_PLUGINS=1 再次执行,出现详细错误信息

QLibraryPrivate::loadPlugin failed on "/tmp/.mount_irSyncsNMCZg/usr/plugins/platforms/libqxcb.so" : "Cannot load library /tmp/.mount_irSyncsNMCZg/usr/plugins/platforms/libqxcb.so: (libxcb-util.so.1: 无法打开共享对象文件: 没有那个文件或目录)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

从QT安装目录/usr/local/Qt-5.15.2中找到libqxcb.so,在目录/usr/local/Qt-5.15.2/plugins/platforms中,复制platforms目录下全部文件到/usr/plugins下,重新打包,完成!

11.创建myApp.sh文件,用于双击运行

文件内容:

#!/bin/bash

APPIMAGE_PATH=/home/drs/下载/PacketAppDir-x86_64.AppImage

cd "$(dirname "$APPIMAGE_PATH")"
#执行 AppImage文件
"./$(basename "$APPIMAGE_PATH")"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: appimagetool-x86_64.appimage是一个用于制作AppImage格式软件包的工具。AppImage是一种用于Linux系统的可移植软件包格式,它可以将应用程序打包成一个独立的可执行文件,使得用户可以直接下载并运行该应用程序,而不需要安装或配置其他依赖项。同时,AppImage还支持可靠的数字签名和沙箱功能,以确保应用程序的安全性。 使用appimagetool-x86_64.appimage,可以轻松地将应用程序打包AppImage格式,并且可以选择添加所需的依赖项和资源文件。该工具支持多种打包方式,包括单文件模式、单目录模式和AppDir模式,可以根据实际需求来选择不同的打包方式。除此之外,使用appimagetool-x86_64.appimage还可以进行版本管理和更新,方便用户及时获得应用程序的最新版本。 总之,appimagetool-x86_64.appimage是一款非常实用的工具,可以帮助开发者和用户快速打包和部署Linux应用程序。它的出现既简化了应用程序的安装和更新,又提高了应用程序的安全性和可移植性,对于Linux生态系统的发展具有重要意义。 ### 回答2: appimagetool-x86_64.appimage是一个开源的打包工具,允许用户将任何应用程序打包为适用于Linux系统的单独可执行文件。这个工具简化了软件的安装和分发,可以在不同的Linux发行版上运行,不需要对系统进行任何修改或依赖库的安装。 appimagetool提供了用户友好的命令行接口,使用该工具,用户可以将可执行文件、库和依赖项打包到一个独立的AppImage文件中,该文件可以在不同的Linux系统上运行。打包AppImage文件具有自包含性,即使用户在不同的Linux系统进程中使用,它也能够保持相同的功能和性能。 该工具还提供了定制化AppImage的选项,如设置应用程序图标、环境变量和启动参数。AppImage文件也可以在GitHub等网站上共享和分发,或者通过邮件和传输协议传输给其他用户,使得应用程序的分发更加方便和高效。 总的来说,appimagetool-x86_64.appimage是一款非常有用的打包工具,用于将应用程序打包成独立的、可以在不同Linux系统上运行的AppImage文件,从而简化了应用程序的分发和安装。它是一个免费、开源的工具,可以帮助Linux用户更加便捷地管理和使用软件。 ### 回答3: appimagetool-x86_64.appimage是一个在Linux系统上使用应用程序封装工具,它可以将一个应用程序打包成一个独立的、可执行的AppImage文件,这个文件可以在大多数现代Linux发行版上运行,而且不需要安装任何依赖项或库。这使得开发者可以更方便地在Linux系统上分发应用程序,而无需担心跨发行版兼容性的问题。 使用appimagetool-x86_64.appimage开发者可以将他们的应用程序、库及其依赖项打包成一个只有一个文件的AppImage。这个文件可以十分方便地进行传输、备份、共享或发布。使用这个工具,开发者还可以将应用程序打包成其他Linux发行版支持的安装包。 总的来说,appimagetool-x86_64.appimage是一个非常方便的开源工具,可以帮助Linux开发者更轻松地在多个发行版上分发应用程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值