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 (意思就是不再低版本发行版使用了)或 -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
linux下将qt程序打包成appimage程序相关推荐
- labview如何弹出提示窗口_以实例跟我学如何将LabVIEW的VI程序打包成安装程序
当我们在LabVIEW平台上辛辛苦苦编写完成测试软件程序时,一般很少情况将程序源代码分发给用户,而是将VI程序制作成可执行的安装包程序,供用户安装使用. 那么,如何将LabVIEW中的VI程序打包成安 ...
- QT程序打包成应用程序方法(Windeployqt)
QT项目打包发布步骤(Windeployqt) 1.选择Release版本发布生成工程文件 2.拷贝可执行文件 找到生成的Release文件夹,将根目录下的Release文件夹中的test.exe文件 ...
- java 程序打包成jar_Java程序打包成jar包
二.打包成可运行的jar包 要打包成可运行的jar包,有两种方法,一是手动创建MANIFEST.MF文件,并在其中指定主类;二是使用jar的-e参数指定可运行jar包的入口点(即main类的完全名称) ...
- PyInstaller来将python程序打包成exe程序及其图标自定义以及ico文件的简单制作
pip install Pyinstaller 当然首先要安装pyinstaller这个包然后才能使用啦 这是一个自动玩别踩白块的python程序的简单实现 *** https://u.ali213. ...
- python打包成exe_python 程序打包成exe程序
上一篇文章讲了如何实现一个简单的计算器程序,肯定你也想能不能做成像电脑桌面软件一样,不用安装python运行环境也可以运行,同时也可以分享给有需要的人. 下面就来一起试试,具体步骤如下: 1.打开cm ...
- QT-将应用程序打包成安装程序
1.使用的打包工具:Inno Setup Compiler 2.下载地址:https://jrsoftware.org/isdl.php#stable 3.打包全过程: 第一步: 第二步: 第三步:
- python打包成.exe程序
一.需求 有些时候,我们想做个带图形化界面的小工具用于pc端,使用MFC当然可以,java也有何不可,那么使用python呢?是否也可以把带有图形化界面的python程序打包成.exe程序?答案是肯定 ...
- linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件
linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件 xuxiang 7 2019-09-18 21:07 下文中提及的inu ...
- asp打开exe执行本地程序._基于QT应用程序打包成可执行程序exe
[本文属原创,转载请附上原文出处链接.] 众所周知QT编译好的应用程序依赖很多动态链接库,不能方便的在其他PC上使用.这里介绍QT5版本的应用程序打包成可执行EXE的方法. 首先把QT应用程序项目编译 ...
最新文章
- 【小白的CFD之旅】20 计算区域的构建
- Developing a blockchain framework for the automotive supply chain: A systematic review 汽车供应链区块链
- 被丧心病狂的验证码虐过,来感受一下交互体验很好的十款吧
- C++类中成员变量的初始化总结
- python中使用Django对url路径进行处理
- 转:ubuntu或linux网卡配置/etc/network/interfaces
- c语言实现 网络嗅探程序代码,一个简易网络嗅探器的实现源代码.doc
- 在网上找来的几个大牛,忽然觉得自己来参加ACM倒也不是一件错误的事情,梦想总是要有的,万一成了呢。
- java path环境变量_java配置环境变量
- stata 空间杜宾模型_利用STATA创建空间权重矩阵及空间杜宾模型计算----命令
- 三菱fx2n做从站的modbus通讯_三菱PLC的通讯与编程,附实际案例
- NET 常见网络命令
- 树莓派用python一键签到百度贴吧
- 深圳市及各区人才补贴
- 高通MSM8255 GPS 调试分析Android系统之Broadcom GPS 移植【转】
- Flink 的功能模块有哪些?
- 058 不定积分计算工具总结
- sau交流学习社区-songEagle开发系列:Vue + Vuex + Koa 中使用JWT(JSON Web Token)认证
- 进入Baxter仿真环境
- 【重点突破】—— UniApp微信小程序开发教程学习Three