linux下将qt程序打包成appimage程序
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 ,并且加上了该参数也许这个程序将不能在低版本发行版使用(没试过)
./linuxdeployqt-7-x86_64.AppImage 程序目录/程序 -appimage -unsupported-allow-new-glibc
大部分的依赖项都到了该程序目录内

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程序的更多相关文章
- 使用py2exe将python程序打包成exe程序
近日帮朋友写了个python小程序,从互联网上抓取一些需要的文章到本地.为了运行方便,希望能转换成exe程序在windows下定期执行.从百度上找了些文章,发现py2exe的应用比较多,遂使用之. 1 ...
- linux下对qt编写的程序进行部署
当我们完成程序设计之后,需要将可执行程序交付客户,而运行环境里面可能是没有相关支持库的,这个时候就涉及到部署的相关问题.对于我们在Linux下基于QT编写的图像处理程序,我们采用linuxdeploy ...
- Qt 学习笔记 - 第三章 - Qt的三驾马车之一 - 串口编程 + 程序打包成Windows软件
Qt 学习笔记全系列传送门: Qt 学习笔记 - 第一章 - 快速开始.信号与槽 Qt 学习笔记 - 第二章 - 添加图片.布局.界面切换 [本章]Qt 学习笔记 - 第三章 - Qt的三驾马车之一 ...
- [置顶] Linux下发布QT程序
Linux下发布QT程序 概述 无论在windows下还是在linux下,可执行程序的运行都依赖于相关的运行库,我们需要将依赖的库找到放到特定的位置,让可执行文件能够找到.在不知道可执行文件依赖哪些库 ...
- nodejs打包成桌面程序(exe)的进阶之路
nodejs打包成桌面程序(exe)的进阶之路 node js bat 前端 计划任务 前言:最近的研究,请大佬们细品 第一篇 - 任务计划程序篇 说真的研究到将nodejs打包成可执行的exe文件是 ...
- 如何将 Python 程序打包成 .exe 文件?
有不少订阅本公众号的朋友都不是玩 Python,甚至都不是计算机相关专业的,当我给他们一个 Python 程序时,他们是完全不知道该怎么运行的. 于是我想是不是可以将我的程序打包成可执行文件,直接运行 ...
- python + pyinstaller 实现将python程序打包成exe文件直接运行
pyinstaller 我们在平常学习使用python的时候经常会自己编写一些小程序来使用,虽然python是跨平台的语言,但是如果我们想要在一个没有python以及很多库环境的电脑上使用我们的小程序 ...
- sencha touch打包成安装程序
为了更好地向大家演示如何打包一个sencha touch的项目,我们用sencha cmd创建一个演示项目,如果你的sencha cmd环境还没有配置,请参照 sencha touch 入门系列 (二 ...
- 将eclipse的应用程序打包成.exe
转自:http://blog.163.com/loveshijie_1991/blog/static/1760553112012102573437156/ 参考:http://blog.csdn.ne ...
- 解析Xcode把应用程序打包成ipa---解决打包完新版本itunes提示不是有效应用程序的问题
Xcode把应用程序打包成ipa是本文要介绍的内容,不多说,先俩看内容.注意:本方法需要先制作假凭证编译于项目中,否则产生的ipa还是无法于iPhone中运行. 制作方法请参考: http://blo ...
随机推荐
- 淘宝 NPM 镜像站
应该有不少开发者已经发现,访问淘宝 NPM 已经会自动 301 跳转到 npmmirror.com 新域名,这是我们独立注册和备案的域名. Web 站点:https://npmmirror.com R ...
- 晶振测试仪GDS-80系列参数
晶振测试仪GDS-80系列 一.产品简介 晶振测试仪GDS-80系列是高性价比的晶振测试系统,采用网络分析技术,实现智能化测量,符合IEC-444标准.测量频率范围10KHz-200KHz,1MHz- ...
- C# fleck websocket使用
转载于:https://www.itspeeding.com/article/28 1.web页面 1 <html lang="en" xmlns="http:// ...
- 《空间三角面片对相交判断算法》的matlab实现_ 0.2微秒
function [flag] = InsectTriPatch(T1,T2) % 判断两个空间三角形面片是否相交 % T1=[0 0 0; % 2 0 0; % 0 1.5 0; % 0 0 1]; ...
- pandas 如何移动列的位置
实现效果 原来备注列在第二列 代码: mid=df['备注'] #取备注列的值 df.pop('备注') #删除备注列 df.insert(4,'备注',mid) #插入备注列
- python 将字典转换为列表
在实现功能时,有时候有些函数适用于非字典形式 这时候就需要把字典转换为其他形式 本例主要讲解字典到列表转换 datas=[{'1':'nihao'},{'2':'very goog'}] to_lis ...
- tsconfig.json 报错问题解决
tsconfig.json 报错问题解决 报错如图所示: 创建tsconfig.json配置文件时,VSCode会自动检测当前项目当中是否有ts文件,若没有则报错,提示用户需要创建一个ts文件后,再去 ...
- laradock 安装扩展程序 pcntl
起因 运行workman脚步的时候,PHP 提示缺少 pcntl 扩展 Config git:(master) php start.php -d Please install pcntl extens ...
- VSCode 终端中文乱码解决方案
问题描述 以下为一个简单的 c++ 文件代码,注意中文部分的显示内容 //测试代码 #include <stdio.h> int main() { int y = 10; int coun ...
- Centos系统云主机中nvme盘不可用解决方法
本文分享自天翼云开发者社区<Centos系统云主机中nvme盘不可用解决方法>,作者:P****n 问题描述 Linux系统的云主机使用NVMe盘后,出现非预期的慢IO读写,导致系统或者应 ...