前提条件

linux下qt程序打包appimage工具主要有三个。

官方教程里推荐的是第一个appimage-builder +appimagetool,在deepin20.2下报奇怪的错误:

package lockup fail

百度上的教程大部分都是推荐第二个linuxdeployqt,结果这个工具都不支持太新的glibc,最多支持到ubuntu18.04。

第三个是linuxdeploy可以在deepin20.2下完美打包qt,下面是一个简单的介绍:

deepin20.2 qt程序使用release构建成功,将生成的可执行程序复制到一个新的文件夹,这里我用xlxplayer文件夹。

制作图标和desktop文件

图标就找一个现成的png图标用PS改一下,desktop文件也复制一份现成的改一下。

将图标文件、desktop文件都放在新文件夹里面,desktop文件的exec文件路径直接用相对路径,icon文件路径不用加格式后缀。如下所示:

[Desktop Entry]
Categories=Office
Comment=psychology player
Encoding=UTF-8
Exec=xlxplayer
GenericName=psychology video player
Icon=xlxplayer
Name=xlxplayer
Terminal=false
Type=Application
X-Deepin-AppID=xlxplayer
X-Deepin-CreatedBy=com.deepin.dde.daemon.Launcher
X-Deepin-Vendor=user-custom

下载linuxdeploy工具

到这个github主页分别下载linuxdeploy-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage linuxdeploy-plugin-appimage-x86_64.AppImage 这三个命令行工具

https://github.com/linuxdeploy

将这三个文件都赋予可执行权限,放在刚才新建的文件夹上层(放在同一级其实也没问题)

设置qml资源环境变量

在刚才新建的xlxplayer文件夹里面打开终端,将qt工程源码复制过来并且重命名为src

export QML_SOURCES_PATHS=src

一个命令生成appimage

../linuxdeploy-x86_64.AppImage --appdir AppDir -e xlxplayer -i xlxplayer.png -d xlxplayer.desktop --plugin qt --output appimage

--appdir AppDir 会在当前文件夹下新建AppDir文件夹,即为虚拟文件目录

-e xlxplayer 可执行文件

-i xlxplayer.png 图标文件

-d xlxplayer.desktop desktop文件

问题修复

找不到/usr/lib/x86_64-linux-gnu/qt5/plugins/texttospeech缺少包,apt search进行搜索安装

sudo apt install qtspeech5-flite-plugin qtspeech5-speechd-plugin

标签: none

赞赏排名 赞赏支持

添加新评论