Linux下打包发布Qt应用程序

Linux下打包发布Qt应用程序

Linux下使用Qt进行开发的程序,若是想要在其余搭载Linux系统的主机上运行则须要将要发布的Qt程序依赖的一些动态连接库一块儿打包。具体作法以下:web

1. 编译文件

在Qt中使用release的方式编译出可执行文件,而后新建一个文件夹,将可执行文件拷贝进去备用。shell

2.巧用脚本文件

这里以Server可执行文件为例。
在新建的文件夹下,新建两个脚本文件:app

新建文件

  1. pack.sh
  2. Server.sh 这个脚本文件名必须和要发布的程序名字相同,因此为 Server
    新建文件后,文件夹包含内容以下:
    文件夹内容

添加脚本

pack.sh文件里添加如下内容:svg

#!/bin/sh  
exe="Server" #你须要发布的程序名称
des="/home/mrzhong/server" #建立文件夹的位置
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des

而后向Server.sh文件里添加如下内容(内容不须要更改):spa

#!/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 "$@"

执行脚本

终端进入文件夹目录,运行:code

./pack.sh

可执行文件依赖的连接库将会拷贝到所在的目录,如图:
alt
在其余主机里面使用和可执行文件同名的脚本文件(这里为Server.sh)运行程序便可。server

打包发布

最后将这个文件打包后拷贝到其余主机上便可运行。xml