Linux下打包发布Qt程序
Linux下使用Qt进行开发的程序,如果想要在其他搭载Linux系统的主机上运行则需要将要发布的Qt程序依赖的一些动态链接库一起打包。具体做法如下:
1、编译文件
在Qt中使用release的方式编译出可执行文件,然后新建一个文件夹,将可执行文件拷贝进去。这里以untitled可执行文件为例。2、添加脚本文件
2.1、在该文件夹下,新建文件pack.sh;命令为:sudo touch pack.sh
向pack.sh文件里添加以下内容,之后保持退出:
#!/bin/sh
exe="untitled" #你需要发布的程序名称
des="/home/桌面/text" #创建文件夹的位置
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $deplist $des
2.在该文件夹下,新建文件untitled.sh然后向untitled.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 "$@"
下图为创建好的文件夹和脚本文件截图:
3、执行脚本文件
终端进入文件夹目录,运行:./pack.sh
可执行文件依赖的链接库将会拷贝到所在的目录,如图:
在其他主机里面使用和可执行文件同名的脚本文件(这里为untitled.sh)运行程序即可。如下图: