Ubuntu18.04平台下Qt开发程序打包的一些问题总结(包含VLC第三方库的打包)

本文总结了在Ubuntu18.04下使用Qt开发的程序打包过程,包括两种打包方式:利用linuxdeployqt(因版本问题未成功)和编写shell脚本。脚本涉及复制依赖库、Qt相关库和VLC初始化插件,以确保程序在无Qt环境的系统上运行。打包完成后,通过运行指定脚本即可启动程序。

问题描述

软件开发完毕之后需要打包Qt程序,将程序放到没有安装Qt开发环境的电脑上运行。

在Ubuntu18.04开发环境下打包有两种方式。

方式一

第一种方式是利用linuxdeployqt软件进行打包,不过由于Ubuntu18.04操作系统版本太高,在Ubuntu18.04上需要重新编译linuxdeployqt软件。重新编译的过程需要注释部分不兼容的源码。由于该方式经测试打包依旧无法运行,故在此不做具体介绍。

方式二

第二种方式是利用编写shell脚本的方式进行打包。打包的具体流程如下:

  1. 新建一个空的文件夹,用于存放程序和动态链接库。如“package”文件夹。
  2. 准备脚本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
  1. 准备脚本xxxx.sh。(xxxx.sh表示该脚本名称必须和程序名一致。如:本项目的可执行文件为uidemo01,命名该脚本为uidemo01.sh)
#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`
dirname=`dirname $0`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
VLC_PLUGIN=$PWD/plugins
echo $VLC_PLUGIN
LD_LIBRARY_PATH=$dirnam
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值