Ubuntu 下qt程序的打包发布

环境:QT5.14.2 Ubuntu16.04

目录结构
在这里插入图片描述
在Ubuntu系统里面编译好文件后,ldd 查看程序相关的依赖库
在这里插入图片描述

  1. 新建一个lib文件夹
    copy.sh内容如下,主要是将ldd找到的库文件复制到lib文件夹下
#! /bin/bash
 
#执行脚本时在终端输入 ./copy.sh ./test ./copy
#其中./test为ldd所要查看的可执行程序的路径,./copy为依赖文件最终拷贝到的文件夹路径
 
#以下三个参数为终端输入
# $0 为 ./copy.sh
# $1 为 ./test
# $2 为 ./copy
  
# awk 后 $0,$1,$2为终端日志的字符串,以空格为分隔符,只在awk本行起作用
#将字符串重定向到dependList
dependList=$( ldd $1 | awk '{if (match($3,"/")){ print $3}}' )
#输出 ./test
#echo $1
 
#拷贝依赖
cp $dependList $2
#拷贝可执行程序
cp $1 $2
  1. 给copy.sh添加运行权限
sudo chmod +x copy.sh
./copy.sh qmltest ./lib/
  1. 新建qt.conf文件
[Paths]
Prefix = ./
Plugins = plugins
  1. 把qt 安装目录下的plugins中的platforms文件夹拷贝出来
    sudo find / -name “Qt”
    在这里插入图片描述在这里插入图片描述

解决方式:在发布程序目标系统目录下运行
export LD_LIBRARY_PATH=’/home/XX/Desktop/XXX/lib’:$LD_LIBRARY_PATH

遇到问题:
qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found.
此问题是缺少相关的so库,还是要到qt安装环境下去找到相关的库,复制过来;比较笨的方法是排除法,将qt中的 /home/XXX/Qt5.14.2/5.14.2/gcc_64/lib 文件夹内所有内容都复制出来,再把不需要的so库或者其他文件删除,保证

参考文章
1
2
3

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Linux下,将Qt程序打包发布可以通过以下步骤来完成: 1. 确保系统已安装Qt开发工具包以及相关依赖库。如果没有安装,可以通过包管理器安装,例如在Debian/Ubuntu上使用apt-get工具,执行命令sudo apt-get install build-essential qt5-default。 2. 使用Qt Creator或命令行编译和构建程序。在Qt Creator中,打开项目文件(通常是.pro文件),选择适当的构建套件并执行构建操作。在命令行中,使用qmake生成Makefile文件,然后通过make命令进行编译。 3. 检查程序是否可独立运行。在设计程序时,确保程序的依赖库是静态链接的,以便在其他机器上可以独立运行。 4. 创建一个目录,将编译生成的可执行文件和相关资源文件放入其中。 5. 创建一个启动脚本。在这个脚本中,设置程序运行所需的环境变量,并执行可执行文件。 6. 将整个目录打包成一个压缩文件。可以使用tar命令将目录打包成.tar文件,或使用zip命令将其打包成.zip文件。 7. 将压缩文件发布到目标系统上。可以通过网络上传或将其复制到可移动媒体上。 8. 在目标系统上解压缩压缩文件。如果使用.tar文件,可以使用tar命令进行解压缩,如果使用.zip文件,可以使用unzip命令进行解压缩。 9. 在目标系统上运行启动脚本。确保目标系统上已经安装了Qt运行时所需的依赖库。 通过以上步骤,可以将Qt程序打包为一个可独立运行的文件,并方便地在Linux系统上进行发布
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值