uos下打包Qt程序

UOS下打包Qt程序,其实就是在linux下进行打包,网上关于ubuntu下的打包内容比较多,uos属于Debian类的linux系统,和ubuntu一样,所以和ubuntu下的打包方法是一样的。

1.首先编写一个release应用程序

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

该脚本的功能就是使用ldd命令找到所打包应用程序依赖的库,并复制到当前目录下的lib文件夹下

3.执行脚本./copylib.sh WtGMAssist,执行之前保证脚本有执行权限,如果没有就执行sudo chmod +x copylib.sh.

4.新建文件夹assist,把应用程序和lib文件夹下的库到复制到assist中,这个时候直接去运行WtGMAssist是能够运行的,因为这是开发环境,有一些依赖能够直接链接到。实际上把这个文件夹复制到干净的系统是无法运行的,会报错缺少xcb模块。所以我们还要把xcb模块添加进来

5.找到Qt安装路径,如/home/song/Qt5.12.8/5.12.8/gcc_64/plugins/platforms,把copylib.sh复制到platforms文件夹下,执行脚本./copylib.sh libqxcb.so

6.把生成的lib文件夹下的库复制到assist文件夹下,注意如果提示文件已存在的,不要替换,选择跳过

7.在assis下创建platforms文件夹,把libqxcb复制到该文件夹下

8.创建运行脚本,WtGMAssist.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

export LD_LIBRARY_PATH

$dirname/$appname "$@"

赋予执行权限,复制到assist文件夹下

9.运行WtGMAssist.sh即可运行

10.不同的项目使用的东西不同,上面的操作是运行依赖的库,有些额外的插件连接的库是没有加的,这些库可以到Qt安装目录下查找,如我的位置是/home/song/Qt5.12.8/5.12.8/gcc_64/plugins

如图片依赖的库为/home/song/Qt5.12.8/5.12.8/gcc_64/plugins/imageformats,代码中使用加载ico图片就需要添加libqico.so

键盘输入的依赖为/home/song/Qt5.12.8/5.12.8/gcc_64/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so

其他依赖根据需要自己手动添加

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值