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

这篇具有很好参考价值的文章主要介绍了使用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")"文章来源地址https://www.toymoban.com/news/detail-473393.html

到了这里,关于使用linuxdeploy-x86_64.AppImage打包QT应用程序的步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MSYS2中mingw-w64-x86_64-qt-creator-10.0.0-2不能新建项目

    今天在MSYS2的MinGW64中安装了最新的Qt Creator 10.0.0(mingw-w64-x86_64-qt-creator-10.0.0-2),但是发现不能新建项目,“选择”按钮为灰: 我之前都可以新建项目,更新后就不行了,于是想要安装一下旧版本看,是否是因为新版本的原因导致的。 此时不能在终端直接使用 pacman -S mingw-

    2023年04月09日
    浏览(44)
  • 飞腾架构麒麟V10桌面系统Qt应用程序打包

    前言 本文记录了在飞腾架构麒麟V10桌面系统中打包Qt应用程序及部署的一些注意事项。打包工具使用的是linuxdeployqt,在飞腾架构架构下没有现成的工具安装包,需要自行编译安装。 1. linuxdeployqt 首先下载linuxqtdeploy下载地址https://github.com/probonopd/linuxdeployqt 下载之后解压目录如

    2024年02月11日
    浏览(89)
  • 使用QEMU(x86)模拟运行ARM64架构并进行内核调试

    在 x86 上使用 QEMU 虚拟机模拟并调试 ARM64。 参考:ubuntu虚拟机中使用QEMU搭建ARM64环境 主机 ubuntu 20.04, Linux 5.16.0 QEMU emulator version 7.2.92 (v8.0.0-rc2-23-gefcd0ec14b) :qemu-7.2.29 合适的ARM64内核源码:linux-4.14.221.tar.gz 安装交叉编译工具: sudo apt-get install gcc-aarch64-linux-gnu 命令安装以及源码

    2024年02月09日
    浏览(57)
  • docker使用buildx构建多平台(x86,arm64)构架镜像

    docker目前使用版本为Server Version: 20.10.7,添加配置支持buildx docker版本较低时,请升级docker版本 有部分docker未带有,比如arm版本,则需要单独下载文件: 重启docker 系统环境要求 如果版本较低,需要升级内核 安装binfmt,支持的平台 安装编译时需要支持的平台,这里选择所有 bin

    2024年02月02日
    浏览(72)
  • mac m1芯片 pycharm使用etree报错:incompatible architecture(have ‘x86_64‘, need ‘arm64e‘)

    背景: 相同的代码,在同事mac电脑上运行正常,自己电脑会报错。自己电脑上的相关信息: mac m1 芯片,使用homebrew安装python3.9 pycharm配置虚拟环境,使用homebrew安装的python 运行 from lxml import etree报错: mach-o file, but is an incompatible architecture (have \\\'x86_64\\\', need \\\'arm64e\\\') [如图所示] 【

    2024年02月10日
    浏览(54)
  • 【MacOS】M系列Mac使用Python类库架构不匹配的问题-(have ‘x86_64‘, need ‘arm64‘)

    使用MacOS做Python开发时,用到了 lxml 依赖库,运行时系统提示 其中核心的提示是 (have ‘x86_64’, need ‘arm64’) 表明这个类库目前安装的是x64架构,并不是M系列的ARM架构,故需要重新把该类库安装为 arm 版本的。常见的处理方式,是卸载该类库,下载类库源码手动安装,但是作

    2024年02月11日
    浏览(51)
  • 使用Electron打包vue文件变成exe应用程序

    克隆下载Electron: 链接: electron-quick-start 1.下载之后安装Electron依赖 npm安装electron总失败使用下面的安装方式 2.安装打包运行 代码如下(示例): 代码如下(示例): 代码如下(示例): 打包后得路径修改成为./,避免Electron打包exe后显示空白 修改生产环境配置,配置为后端

    2024年01月24日
    浏览(47)
  • 【bad CPU type in executable】 MAC M1无法使用 x86_64 架构应用,通过配置自动使用

    今天在使用protoc时发现会出现以下报错, bad CPU type in executable: protoc 首先可以看一下一下文章 https://support.apple.com/en-us/HT211861 https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment 可以通过安装rosetta来自动解析运行x86_64架构应用。 通常可以通过点击应用,

    2024年02月13日
    浏览(59)
  • 在Fedora-Workstation-Live-x86_64-36-1.5中使用佳能喷墨打印机ip2780

    在Fedora-Workstation-Live-x86_64-36-1.5中使用佳能喷墨打印机ip2780 操作系统是64位的Fedora-Workstation-Live-x86_64-36-1.5.iso,实物打印机是佳能ip2780,USB接口 应用程序——其它——设置——打印机——解锁——输入root密码——将打印机USB插入电脑主机并按下电源键,大约1分钟后跳出提示打

    2024年02月05日
    浏览(51)
  • 在openSUSE-Leap-15.5-DVD-x86_64的gnome下使用远程桌面tigervnc

    在openSUSE-Leap-15.5-DVD-x86_64的gnome下使用远程桌面tigervnc 在openSUSE-Leap-15.5-DVD-x86_64的tigervnc-1.12.0软件设计有变动了,变为一开机就启动远程桌面服务,没有vncserver取而代之是Xvnc,也在自己之前写的一篇博文的基础上作了修改 《在openSUSE-Leap-15.2-DVD-x86_64的kde下使用远程桌面tigervnc》

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包