相关文章推荐
冲动的弓箭  ·  解决报错 ...·  1 周前    · 
追风的炒粉  ·  portError: ...·  3 天前    · 
道上混的饭盒  ·  Notify Update·  1 年前    · 
英姿勃勃的冲锋衣  ·  spring ...·  1 年前    · 

下文中提及的inuxdeployqt   patchelf    appimagetool工具及示例下载地址:

链接: https://pan.baidu.com/s/1BGm_btMIe75uW9hOC09Xlg

提取码: 7ayh

需要创建目录及文件

xxx.AppDir

xxx.AppDir/ AppRun ----------------------------------- xx.AppImage运行时执行的程序, AppRun 可以是可执行程序,也可以是脚本文件。

xxx.AppDir/usr

xxx.AppDir/usr/bin/xx--------------------------------主程序

xxx.AppDir/usr/lib-----------------------------------库目录

xxx.AppDir/usr/share/applications/xx.desktop---------界面程序启动文件

xxx.AppDir/usr/share/icons/hicolor/xx.png------------界面程序图标

一、准备打包文件

将 linuxdeployqt   patchelf    appimagetool等文件 拷贝到系统目录下 /bin 并赋予可执行权限chmod a+x

将终端切换到xxx.AppDir同级的目录下

qt程序的打包先执行以下命令,将依赖库自动收集到xx.AppDir/usr目录下

linuxdeployqt xx.AppDir/usr/share/applications/xx.desktop

xx.desktop和xx.png文件会被拷贝到xx.AppDir目录下

非qt程序的打包需要先将

xx.desktop和xx.png文件手动放到xx.AppDir目录下

SELF=$(readlink -f "$0")

HERE=${SELF%/*}

export PATH="${HERE}/usr/bin/:${HERE}/usr/sbin/:${HERE}/usr/games/:${HERE}/bin/:${HERE}/sbin/${PATH:+:$PATH}"

export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib/i386-linux-gnu/:${HERE}/usr/lib/x86_64-linux-gnu/:${HERE}/usr/lib32/:${HERE}/usr/lib64/:${HERE}/lib/:${HERE}/lib/i386-linux-gnu/:${HERE}/lib/x86_64-linux-gnu/:${HERE}/lib32/:${HERE}/lib64/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

export PYTHONPATH="${HERE}/usr/share/pyshared/${PYTHONPATH:+:$PYTHONPATH}"

export XDG_DATA_DIRS="${HERE}/usr/share/${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}"

export PERLLIB="${HERE}/usr/share/perl5/:${HERE}/usr/lib/perl5/${PERLLIB:+:$PERLLIB}"

export GSETTINGS_SCHEMA_DIR="${HERE}/usr/share/glib-2.0/schemas/${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}"

export QT_PLUGIN_PATH="${HERE}/usr/lib/qt4/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt4/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt4/plugins/:${HERE}/usr/lib32/qt4/plugins/:${HERE}/usr/lib64/qt4/plugins/:${HERE}/usr/lib/qt5/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt5/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt5/plugins/:${HERE}/usr/lib32/qt5/plugins/:${HERE}/usr/lib64/qt5/plugins/:${HERE} /usr/plugins/ ${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH}"

EXEC=$(grep -e '^Exec=.*' "${HERE}"/ *.desktop | head -n 1 | cut -d "=" -f 2 | cut -d " " -f 1)

exec "${EXEC}" "$@"

xx.desktop示例如下:

[Desktop Entry]

Type=Application

Name=xx

Exec=xx

Comment=Tool to generate AppImages from AppDirs

Icon=logo

Categories=Development;

Terminal=false

1、打包步骤参考

https://github.com/probonopd/linuxdeployqt/blob/master/BUILDING.md

打包过程中需要的软件 linuxdeployqt patchelf appimagetool AppRun

集成包linuxdeployqt-5-x86_64.AppImage-----集成了 linuxdeployqt patchelf

集成包appimagetool-x86_64.AppImage----------集成了 appimagetool AppRun

将qt5.8 打包成  QtCreator-5.8.0-x86_64.AppImage https://bintray.com/probono/AppImages/QtCreator/5.8.0#files

https://github.com/probonopd/linuxdeployqt/wiki/Custom-wrapper-script-instead-of-AppRun#example-wrapper-in-bash

  1. Create the appdir/ directories (appdir/usr/bin, appdir/usr/share/applications, ...).
  2. Create the wrapper script or program.
  1. Copy the main executables, not the wrapper, into appdir/usr/bin/.
  1. Copy the .desktop files into appdir/usr/share/applications/. Note that the desktop files' Exec=should still point to your executables, not the AppRun.
  1. Copy the icon file into appdir/usr/share/icons/hicolor/.
  1. Copy any other resources you may wish (Qml, etc).
  2. Run linuxdeployqt appdir/usr/share/application/*.desktop with any options you may need.
  3. Remove appdir/AppRun which is created by linuxdeployqt.
  4. Copy your wrapper in appdir/AppRun (i.e. to the place of the AppRun that was there).
  5. Run appimagetool appdir to create your image. (Note: there is a bug that may require you run this step twice).

AppRun 脚本的示例

#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
export LD_LIBRARY_PATH=${HERE}/usr/lib/foobar:$LD_LIBRARY_PATH
exec "${HERE}/usr/bin/foo" "$@"

2、打包软件下载

https://github.com/probonopd/linuxdeployqt

https://github.com/AppImage/AppImageKit

下文中提及的inuxdeployqt patchelf appimagetool工具及示例下载地址:链接: https://pan.baidu.com/s/1BGm_btMIe75uW9hOC09Xlg提取码: 7ayh需要创建目录及文件xxx.AppDirxxx.AppDir/AppRun-----------------------------------...
linux 下的 qt 自动查找依赖 文件 打包 工具。有同学连不上github,为了方便大家,可以从这里下载。当然也可以直接去git下载,地址:https://github.com/probonopd/ linux depl oyqt /releases 参考博客地址: https://blog.csdn.net/zyhse/article/details/106381937#comments_13078337
文章目录1. linux depl oyqt 源码编译下载 linux depl oyqt 源码包,6版本的执行下面的步骤遇到报错 对‘ucal_clone_56’未定义的引用2. 解决依赖 linux depl oyqt package - app image 报错 ERROR: Could not start patchelf报错 sh: 1: app image tool : not found运行 linux depl oyqt package 1. linux depl oyqt 源码编译 下载 linux depl oyqt 源码包,6版本的
app inage 打包 方法 本篇记录了自己在 ubuntu 系统上开发好了一个项目(C++)后,想要对工程进行一个发布,使得该工程只通过一个可执行 文件 和相应的一个初始化指令,便使得整个工程可以运行。 可以通过利用 app image 工具对项目进行一个 打包 。 整体介绍: 打包 需要两个工具:(1) app image tool , 下载地址: https:// app image .github.io/ app image tool / (2) linux depl oy, 下载地址:https://github.com/ linux depl oy/
1.1下载 linux depl oyqt 程序 打包 qt 程序 的工具) https://github.com/probonopd/ linux depl oyqt /releases 下载 app image 的包 linux depl oyqt -7-x86_64. App Image 下载下来更改一下权限sudo chmod 777 linux depl oyqt -7-x86_64. App Image arm的话,自行编译吧 1.2下载 app image kit( app image
linux 下对开发的 Qt 应用,进行拷贝依赖 文件 so等,并打 deb安装包; 实现可安装、卸载,安装完毕自动在开始菜单下和桌面添加快捷方式; 卸载后自动删除快捷方式,以及删除应用生 的log 文件 。 测试环境: ubuntu 16.04 一、 使用 linux depl oyqt 拷贝依赖 文件 win系统下有个自动拷贝依赖 文件 的工具win depl oyqt ,而 linux 系统下也有个类似的工具,叫 linux depl oyqt ,原理一个意思。 该工具的帮助文档:https://github.
以前, Linux . 因为发行版众多,给不同的发型版适配 打包 ,非常麻烦。 同样一套代码,在不同的发行版上编译出来以后,调用的动态连接库不一样,于是得分别编译。而不同的发行版上面, 使用 打包 工具,也是千差万别,需要分别 打包 ,手动编写各种spec、debs等等。 现在有了 App Image .,这种状况一下子就改观了许多。 App Image 文件 使用 App Image 文件 ,是一个包含了所有依赖的二进制包。我们下载了一个 App Image 以后,只需要两步,就可以让 程序 运行起来。 假如我们下载了一个apvlv. App Ima
git clone https://github.com/keystone-engine/keystone.git git clone https://github.com/lzscxb/navicat-keygen.git https://github.com/ App Image / App Image Kit/release liwqky: 执行命令linuxdeployqt hello.AppDir/usr/share/applications/hello.desktop linuxdeployqt 6 (commit 586aaf7), build <local> built on 2019-09-25 06:36:17 UTC FHS-like mode with PREFIX, fhsPrefix: "/../.." QDir::exists: Empty or null file name ERROR: Error: Could not find app-binary "" linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件 liwqky: 你好,我按照你的教程操作用linuxdeployqt打包出现了以下问题,实在不知道是啥原因,麻烦帮我看一下,谢谢。