Ubuntu下打包Qt项目

1 篇文章 0 订阅

参考官方链接:https://doc.qt.io/qt-5/linux-deployment.html
我的项目名:videoPlayer;编译器:DeskTop Qt 5.9.9 gcc 64bit

一、新建一个空白目录:

把编译出来的可执行程序复制过来

mkdir player
cp ~/Workspzce/Qt/videoPlayer/release/videoPlayer ./

二、新建两个文件

1、pack.sh
此文件名可随便取名,用于复制可执行程序依赖包,到当前文件夹的./lib目录下

#!/bin/sh
exe=$1
des=$PWD"/lib"
deplist=$(ldd $exe | awk '{if(match($3,"/")){printf("%s\n"),$3}}')
cp $deplist $des

2、videoPlayer.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 "$@"

完事了给两个文件 可行性权限

sudo chmod +x *.sh

三、重点来了

//1、把自己项目的依赖库全搞出来
cp pack.sh ~/Workspzce/Qt/videoPlayer/release///进入自己的项目路径release下
cd ~/Workspzce/Qt/videoPlayer/release
mkdir lib
./pack.sh videoPlayer//此处参数为自己的可执行程序名
cd ./lib 
cp * ~/player
/*
	2.添加 libqxcb.so相关依赖库
	否则在其它主机运行时,会遇到如下错误
	This application failed to start because it could not find or load the Qt platform plugin “xcb”
	以下摘自官网:
	All Qt GUI applications require a plugin that implements the Qt Platform Abstraction (QPA) layer in Qt 5. For Linux/X11, the name of the platform plugin is libqxcb.so. This file must be located within a specific subdirectory (by default, platforms) under your distribution directory. Alternatively, it is possible to adjust the search path Qt uses to find its plugins, as described below.
*/
cp pack.sh ~/Qt5.9.9/5.9.9/gcc_64/plugins/platforms//进入到自己的Qt安装目录
cd /home/ubuntu/Qt5.9.9/5.9.9/gcc_64/plugins/platforms
mkdir lib
./pack.sh libqxcb.so
cd lib
cp * ~/player
cd ../../
cp platforms -R ~/player

到这里 基本结束。可以打包到其他主机测试了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值