如何手动打包Linux(麒麟系统)的Qt程序

序言

        Qt在windows上有自带的windeployqt来帮助打包程序,但是对于linux系统来说Qt并没有自带对应的打包程序。尽管存在开源的linuxdeployqt打包程序,但是在使用的过程中会出现很多问题,对于arm架构的系统来说需要编译并修改源码等等。 综上所述,手动打包不失为一种更好的选择。

准备

        首先要确认程序运行的目标环境gcc版本要高于你开发环境的gcc版本,否者就算打包了也无法运行。可以通过gcc -v来查看对应的版本:

接下来需要一个已经编译好的运行程序,如果不知道怎么编译程序可以查看如何将windows的程序移植到麒麟系统上编译

创建软件目录

        首先我们要创建一个程序目录,目录结构如下:

package/
├── bin/
│   ├── run.sh          # 启动脚本
│   └── app             # 程序的可执行文件
├── lib/
│   ├── libQt5Core.so.5 # 依赖库 (例如 Qt 库)
│   ├── libQt5Gui.so.5  # 依赖库
│   ├── libQt5Widgets.so.5
│   ├── libstdc++.so.6  # 其他依赖库
│   └── ...             # 其他库
├── plugins/            # Qt 插件目录
│   ├── platforms/
│   │   └── libqxcb.so  # 平台插件 (用于 GUI 应用的 X11 支持)
│   └── ...             # 其他可能的插件
└── resources/          # 资源文件(可选)
    └── icon.png        # 图标或其他资源文件

首先进入你编译好的程序文件夹,执行命令

mkdir -p package/{bin,lib,plugins}

运行完成后可以看到系统创建了对应的目录:

复制你的可执行程序到bin目录下(将 your_executable 替换为你的可执行文件名):

cp ./your_executable package/bin/

准备程序运行库

        使用以下命令来查看你可执行程序所需要的运行库:

ldd ./your_executable

可以看到控制台输出:

你可以根据各个库后面的路径来找到对应的库,并将它们全部复制到之前创建的lib目录下。或者使用 rsync 复制依赖库(将 your_executable 替换为你的可执行文件名)

ldd ./your_executable | grep "=> /" | awk '{print $3}' | xargs -I '{}' rsync -av '{}' package/lib/

复制完成后可以再执行一次ldd命令来对比一下程序依赖库是否全部复制完成。复制完成后如下:

复制Qt插件

        确定你程序所需要的插件,然后将你使用的Qt版本对应的插件复制到plugins里边。我这里为了方便把所有的插件都复制过来了,全部插件也不大。例如我这里用的是Qt5.7.0版本:

编写运行脚本

        为了确保程序在运行时能找到这些库,你需要在运行时设置 LD_LIBRARY_PATH 环境变量。创建一个脚本文件 run.sh并放到bin目录下

nano package/bin/run.sh

添加如下内容:

#!/bin/bash
export LD_LIBRARY_PATH=$(dirname $0)/../lib:$LD_LIBRARY_PATH
$(dirname $0)/your_executable

your_executable 替换为你的可执行文件名。保存并关闭文件,然后给脚本文件添加执行权限:

chmod +x package/bin/run.sh

        完成后bin目录下文件如下:

测试

        接下来可以直接运行run.sh脚本来测试程序是否运行成功。

压缩打包

        最后,将 package 目录压缩为一个 .tar.gz 包或其他格式的包,方便分发:

tar czvf your_application.tar.gz package/

大功告成!

麒麟系统是基于Ubuntu的操作系统打包Qt程序为应用程序可以通过以下步骤进行: 1. 安装必要的工具:在终端中执行以下命令来安装打包所需的工具: ``` sudo apt-get install build-essential qt5-default qtcreator ``` 2. 打开Qt Creator:打开Qt Creator应用程序,然后打开你的Qt项目。 3. 配置构建选项:在Qt Creator中的“构建”菜单下,选择“构建设置”,确保你选择了正确的构建套件。然后选择“构建”选项卡,确保选择了正确的构建目标和构建步骤。 4. 构建项目:点击Qt Creator窗口下方的构建按钮,开始构建你的项目。 5. 创建应用程序包:构建完成后,在Qt Creator中的“构建”菜单下,选择“部署到远程设备”,然后选择“创建应用程序包”。 6. 配置应用程序包:在创建应用程序包对话框中,选择输出目录和应用程序包的名称。你还可以选择是否包含Qt运行库和其他依赖项,以及是否自动生成启动脚本等。 7. 创建应用程序包:点击创建按钮,Qt Creator将使用Linux Deploy工具来创建应用程序包。这个过程可能需要一些时间,取决于你的项目的大小和复杂性。 8. 完成打包:当创建应用程序包完成后,你将在输出目录中找到一个文件夹,其中包含了你的应用程序的所有必要文件。你可以将整个文件夹复制到任何其他麒麟系统中运行你的应用程序。 以上就是使用麒麟系统打包Qt程序为应用程序的过程。请注意,这只是一个简单的概述,实际的操作可能会有所不同,具体步骤可能会因你的项目和系统环境而有所不同。建议参考相关的Qt文档和麒麟系统的指南来获得更详细和准确的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值