arm架构系统打包qt程序--麒麟操作系统为例

检查系统架构

shell 复制代码
uname -a

如果显示是aarch644或arm64,说明你使用的是ARM架构,,需要下载ARM版本。

下载对应架构的linuxdeployqt

  1. 编写脚本
shell 复制代码
vim deploy.sh
shell 复制代码
#!/bin/bash
APP_NAME="sunny450_silc"

# 确保deploy目录存在
mkdir -p deploy

# 复制程序
cp $APP_NAME deploy/

# 创建desktop文件
cat > deploy/$APP_NAME.desktop << EOF
[Desktop Entry]
Type=Application
Name=Sunny450 SILC
Comment=嵌入式终端应用程序
Exec=$APP_NAME
Icon=$APP_NAME
Categories=Utility;System;
Terminal=false
StartupNotify=true
EOF

# 创建简单图标(如果系统支持convert命令)
if command -v convert >/dev/null 2>&1; then
    convert -size 128x128 xc:lightblue -pointsize 20 -fill darkblue -gravity center -annotate +0+0 "SILC" deploy/$APP_NAME.png
else
    # 创建一个空的PNG文件作为占位符
    echo "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==" | base64 -d > deploy/$APP_NAME.png
fi

# 运行linuxdeployqt
./linuxdeployqt-continuous-aarch64.AppImage deploy/$APP_NAME -appimage

echo "打包完成!"
ls -la *.AppImage
  1. 运行
shell 复制代码
chmod 777 deploy.sh
./deploy.sh
  1. 修改说明
shell 复制代码
#!/bin/bash

# ===========================================
# 需要修改的地方:
# ===========================================

# 1. 【必须修改】应用程序名称 - 改成你实际的可执行文件名
APP_NAME="sunny450_silc"  # <-- 修改这里:你的程序文件名,笔者这里直接将应用程序复制到了deploy同级目录

# 确保deploy目录存在
mkdir -p deploy

# 复制程序
cp $APP_NAME deploy/

# 2. 【可选修改】desktop文件内容 - 修改应用信息
cat > deploy/$APP_NAME.desktop << EOF
[Desktop Entry]
Type=Application
Name=Sunny450 SILC                    # <-- 修改:应用显示名称
Comment=嵌入式终端应用程序              # <-- 修改:应用描述
Exec=$APP_NAME
Icon=$APP_NAME
Categories=Utility;System;             # <-- 修改:应用分类
Terminal=false                         # <-- 修改:是否需要终端运行,false表示双击或者终端都可以运行,true表示只能通过终端命令运行
StartupNotify=true
EOF

# 3. 【可选修改】图标内容
if command -v convert >/dev/null 2>&1; then
    # 修改图标样式:大小、颜色、文字等
    convert -size 128x128 xc:lightblue -pointsize 20 -fill darkblue -gravity center -annotate +0+0 "SILC" deploy/$APP_NAME.png
    #          ^^^尺寸   ^^^背景色      ^^^字体大小 ^^^文字颜色                              ^^^显示文字
else
    # 创建一个空的PNG文件作为占位符(通常不需要修改)
    echo "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==" | base64 -d > deploy/$APP_NAME.png
fi

# 4. 【可能需要修改】linuxdeployqt文件名 - 确保文件存在
./linuxdeployqt-continuous-aarch64.AppImage deploy/$APP_NAME -appimage
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 修改:你下载的linuxdeployqt文件名

echo "打包完成!"
ls -la *.AppImage

# ===========================================
# 具体修改示例:
# ===========================================

# 如果你的程序叫 "myapp",修改如下:
# APP_NAME="myapp"
# Name=My Application
# Comment=我的Qt应用程序

# 如果你的程序需要在终端运行,修改如下:
# Terminal=true

# 如果你的程序是游戏类应用,修改如下:
# Categories=Game;

# 如果你下载的是x86_64版本,修改如下:
# ./linuxdeployqt-continuous-x86_64.AppImage deploy/$APP_NAME -appimage
shell 复制代码
常用的Categories分类:
Utility; - 实用工具
Development; - 开发工具
System; - 系统工具
Network; - 网络应用
Graphics; - 图形应用
Office; - 办公软件
相关推荐
sunshine22 girl18 分钟前
Java学习六 Java常见API-1-Radom随机数
java·开发语言·学习
可乐鸡翅yeah_22 分钟前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
潼心1412o38 分钟前
C++初阶(长期更新)第6讲:类和对象(下)
开发语言·c++·算法
夜晚回家1 小时前
Python 零基础入门 | 输入的数字为什么不能直接算
开发语言·python
时间的拾荒人1 小时前
Qt 事件机制全解析:从事件处理到事件过滤器
开发语言·qt·面试
于指尖飞舞1 小时前
java面试题总结
java·开发语言
zhangzeyuaaa2 小时前
深入理解 Ruby 运算符:本质、分类、坑点与重载实战
开发语言·前端·ruby
一木 之林3 小时前
DeepSeek Agent 开发(一)
开发语言·前端·javascript
朔北之忘 Clancy3 小时前
青少年软编等考七级题解目录
开发语言·c++·青少年编程·gesp·csp·信奥赛·noi
ss2733 小时前
AI全栈实战 | 3.2-01 Python 基础:四大数据容器怎么选,推导式为什么是 Pythonic 的灵魂
开发语言·人工智能·python