麒麟V10系统打包Qt免安装包程序

本文详细介绍了如何在麒麟系统上打包Qt应用程序,使其成为免安装包。步骤包括创建存放文件夹、编译工程、设置权限、复制库文件、处理平台插件以及创建启动脚本。在打包过程中,特别强调了处理Qt平台插件“xcb”的关键步骤,以解决运行时的库加载问题。


这里是参考了很多人的一些打包总结,目前我尝试的是使用脚本形式拉去到所有的Qt依赖库,拷贝Qt文件夹到目标主机运行相应脚本即可,下面说下具体过程,环境是麒麟V10+Qt5.12.12, 亲测通过,只要按照我下面整理好的步骤绝对没问题,网上参考的基本会在第六步出错,我这边是调整的!

步骤一

找个地方,比如桌面,创建空文件夹Package,这个将用来存放生产的xxx程序的运行文件,比如我们生成的可执行文件名称叫A,在win系统下就是A.exe, 这样一说是不是就清晰了,知道什么叫可执行文件了!

步骤二

先将工程使用Release模式编译,生成可执行文件Arelease版本的! 将A复制到Package

步骤三

Package文件夹中新建文件copylib.sh,通过指令设置权限

chmod 777 copylib.sh

copylib.sh 中加入内容

### 麒麟 V10 系统 Qt 程序打包成安装包的方法 在麒麟 V10 系统上将 Qt 程序打包成可分发的安装包是一个复杂的过程,涉及多个步骤和工具。以下是详细的说明: #### 1. 准备工作 确保系统已安装必要的依赖项并更新软件包列表: ```bash sudo apt update && sudo apt upgrade -y ``` 下载适合的 Qt 版本(例如 Qt5.12.8),并将其解压到目标目录[^1]。 #### 2. 编译与构建 使用 `qmake` 和 `make` 工具来编译 Qt 应用程序。假设项目的源码位于 `/path/to/source`,则可以通过以下命令进行编译: ```bash cd /path/to/source /path/to/qt/bin/qmake make make install ``` 在此过程中,可能需要指定自定义参数,例如 `-prefix` 来设置安装路径[^4]。 #### 3. 解决依赖关系 在打包前,需确认所有动态库均已正确加载。如果某些库缺失,可能会导致程序无法正常运行。通过 `ldd` 命令检查二进制文件的依赖情况: ```bash ldd ./your_program_binary | grep "not found" ``` 对于未找到的库,可以从系统或其他位置复制到应用目录下的子目录(如 `lib/`)。如果是 Qt 插件,则应从系统的默认 Qt 安装路径中查找并复制至对应环境变量指向的位置[^2]。 #### 4. 使用 `linuxdeployqt` 或其他工具打包 为了简化跨平台部署过程,推荐使用 `linuxdeployqt` 工具。此工具会自动处理大部分依赖问题,并生成独立的应用程序包。 ##### 安装 `linuxdeployqt` 可通过以下方式获取 `linuxdeployqt`: ```bash wget https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage chmod a+x linuxdeployqt*.AppImage ./linuxdeployqt*.AppImage --appimage-extract ``` ##### 运行 `linuxdeployqt` 针对已经编译好的应用程序执行如下命令: ```bash ./squashfs-root/AppRun ./your_program_binary -bundle-non-qt-libs ``` 这一步骤将会把所有的非 Qt 动态链接库嵌入到最终的应用程序包中[^2]。 #### 5. 添加额外资源 除了核心二进制文件外,还需要将一些辅助文件加入到打包后的目录结构里,比如配置文件、图标以及翻译文件等。这些通常存放在特定子目录下(如 `resources/`, `translations/`)[^3]。 #### 6. 测试打包结果 最后,在另一台干净机器上测试生成的安装包是否能够成功启动并无错误发生。 --- ### 注意事项 - 如果遇到插件丢失的情况,请参照系统自带 Qt 的安装路径寻找相应组件[^2]。 - 对于数据库连接等功能模块,还需单独验证其兼容性和可用性[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fu_Lin_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值