菜单 学习猿地 - LMONKEY

 Qt on Linux 使用deb打包发布

Qt on Linux 使用deb打包发布

chrisyogi profile image chrisyogi ・1 min read

Distribute Qt APP on PPA of Ubuntu using the .deb package.

[Abstract]: 在Qt on Linux上开发程序完成后需要脱离本机所营造的开发库环境变量运行,则需要对二进制执行文件进行打包发布。在Ubuntu系统中通常使用deb格式文件对二进制安装包进行封装。Ubuntu系统提供了个人软件包(Personal Package Archives, PPA)在线安装deb功能。本文阐述在Linux系统中使用Qt编译生成的二进制文件收集*.so库文件过程、Ubuntu的deb打包过程,完成从Qt编译生成的二进制文件到发布到Ubuntu个人软件包文档全过程。

1. 收集支持库文件

使用Qt Creator开发的项目工程文件在release或debug模式下生成的二进制文件依赖于Qt Creator的环境变量,这是一个Qt运行库完整的环境变量。当二进制文件脱离该环境会提示加载依赖库失败。Linux系统ldd命令(ldd app)可以显示二进制文件依赖库。文献1提供了自动收集库文件的脚本。

对其进行改造命名为qt-lib-collect.sh,输入参数1目标文件,输入参数2库文件存储路径。

#!/bin/sh
# 可执行程序名
appname=$1
# 目标文件夹
dst=./$2
# 利用 ldd 提取依赖库的具体路径
liblist=$(ldd $appname | awk '{ if (match($3,"/")){ printf("%s "), $3 } }')
# 目标文件夹的检测
if [ ! -d $dst ];then
                mkdir $dst
fi
# 拷贝库文件和可执行程序到目标文件夹
cp $liblist $dst
cp $appname $dst

eg: ./qt-lib-collect.sh app out_dir

image.png


  1. 追火车. 【Qt依赖库】Linux 环境下 Qt 可执行程序依赖库打包脚本. https://blog.csdn.net/tmt1234...

评论 (0)