Linux环境下Qt应用程序打包与发布

本文介绍Linux环境下Qt应用程序的打包与发布。

Linux环境下,在开发机器上开发完应用程序,需要部署到其他非开发环境的机器上,这时,需要对开发的Qt应用程序进行打包,以确保可以在其他机器平台(非开发环境)上能正常使用。

1.创建目录

为方便各文件的有效组织,需对不同的文件进行归类,这里以“fixture”项目为例。建立“fixture”文件夹(可根据实际项目进行命名),在此文件夹下依次建立"bin","lib","plugins"文件夹,以备用。如下图所示。

2.lib文件夹

lib文件夹主要放置应用程序依赖的一些库。这里建立"copylib.sh"一个脚本。内容如下:

#!/bin/bash

LibDir=$PWD"/lib"
Target=$1

lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))

$(mkdir $LibDir)

for Variable in ${lib_array[@]}
do
    cp "$Variable" $LibDir
done

赋予"copylig.sh"可执行权限:

sudo chmod a+x copylib.sh

建立好脚本,下一步就需要找出应用程序以来的库了,这里分2步。

1)应用程序依赖的库

a)将"copylib.sh"复制到项目工程的"xxx-Release"目录下。

b)执行脚本命令(命令行参数可根据情况改变):

copylib.sh fixture

这时,在当前目录下会自动建立一个lib的文件夹,并把应用程序依赖的库全部复制到这里。

c)复制lib文件夹中所有内容到“1.准备工作”的lib文件夹。

2)libqxcb.so依赖的库

a)将"copylib.sh"复制到Qt开发工具下的"plugins/platforms"目录下。我的目录路径为:“/opt/Qt5.13.2/5.13.2/gcc_64/plugins/platforms”,如下图所示:

b)执行脚本命令(因在系统目录,这里需要加sudo):

sudo copylib.sh libqxcb.so

这时,在当前目录下会自动建立一个lib的文件夹,并把"libqxcb.so"依赖的库全部复制到这里。

c)复制lib文件夹中所有内容到“1.准备工作”的lib文件夹,如有冲突直接覆盖掉。

至此,我们完成了“lib”文件夹的内容。

3.plugins文件夹

plugins文件夹主要放置Qt应用程序运行所依赖的一些插件。直接复制Qt开发工具下的"plugins"目录下的"platforms"目录到此文件夹。当然,如果应用程序还依赖其他插件可以将"plugins"目录下其他需要的插件一并拷贝。

至此,我们完成了“plugins”文件夹的内容。

4.bin文件夹

bin文件夹主要放置我们编译,链接好的应用程序及Qt相关的配置。

1)复制"xxx-Release"目录下的可执行文件到此文件夹。

2)建立配置文件"qt.conf",填充如下内容:

[Paths]
Prefix=../
Plugins=plugins

指定应用程序依赖的插件。

至此,我们完成了“bin”文件夹的内容。

5.主目录文件夹

应用程序要想运行,还需要配置相关的环境变量。建立1个以应用程序名称为文件名的脚本,如我的文件名为"fixture.sh",添加如下内容:

#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`
dirname=`dirname $0`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname/lib
export LD_LIBRARY_PATH
$dirname/bin/$appname "$@"

这里指定了库的路径及应用程序的路径。赋予脚本可执行权限:

sudo chmod a+x fixture.sh

至此,我们完成了主目录文件夹的所有内容。

6.执行&测试

将打包后的内容拷贝到非开发环境机器(可用虚拟机建立1个基本运行环境),执行主目录下的脚本:

cd fixture
./fixture.sh

正常情况下,程序得以执行。

测试完成后就可以将文件夹打包压缩作为应用程序发布。

注意:在执行过程中若遇到插件加载错误,可执行:

export QT_DEBUG_PLUGINS=1

根据输出信息找出问题。

总结,本文介绍Linux环境下Qt应用程序的打包与发布。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要在Linux打包Qt应用程序,可以使用Qt提供的工具Qt Installer Framework(简称IFW)来创建安装程序。 以下是一些基本步骤: 1. 首先,确保您的应用程序已经构建成功并可在Linux系统上运行。 2. 下载Qt Installer Framework。可以从Qt官方网站(https://www.qt.io/qt-installer-framework)下载最新版本。 3. 创建一个安装程序项目。使用IFW提供的二进制文件(例如`binarycreator`)创建一个新的安装程序项目。这个项目描述了您的应用程序的安装和卸载过程,以及其他一些自定义设置。 4. 配置安装程序项目。编辑安装程序项目文件(`.xml`格式),指定要安装的文件和目录,以及其他自定义设置,例如图标、快捷方式等。 5. 构建安装程序。使用IFW提供的二进制文件(例如`repogen`和`installer`)构建安装程序。首先使用`repogen`工具生成仓库元数据,然后使用`installer`工具创建实际的安装程序。 6. 测试安装程序。在Linux环境中运行生成的安装程序,确保它能够正确安装和卸载您的应用程序。 7. 部署和分发安装程序。将生成的安装程序文件发送给用户或将其发布到适当的渠道,以便用户可以下载和安装您的应用程序。 请注意,这只是一个简单的步骤概述,具体的实现可能会因您的应用程序和需求而有所不同。建议查阅Qt Installer Framework的官方文档,以获取更详细的指导和示例。 祝您打包成功!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值