Linux系统中打包发布Qt程序

简述

Qt应用程序在windows下有一个自带的小程序(windeployqt)可以用来打包;Linux系统下可以手写一个脚本文件,充分利用ldd命令进行打包。

实现

废话不说,步骤如下:

1.QtCreator使用Release版本进行编译,并将编译后生成的可执行程序(MyApp)复制到一个空目录下。
2.在这个空目录下新建一个文件(pack.sh),文件内容如下:

#!/bin/sh
exe="MyApp" #需发布的程序名称
des="NewDir" #步骤一中新建目录的完整路径
deplist=$(ldd $exe|awk '{if (match($3,"/")){printf("%s "),$3}}')
cp $deplist $des

3.运行这个pack.sh文件(./pack.sh)即可完成打包。
4.为了方便部署程序,如添加环境变量、创建桌面快捷方式等,可以在此目录下新建一个sh文件,文件名必须与可执行文件名字相同。此文件内容如下:

#!/bin/sh
appname=`basename $0|sed s,\.sh$,,`
dirname=`dirname $0`   #注意appname与dirname内容外面并不是单引号,而是撇号,笔者曾因此花费大量时间
tmp="${dirname#?}"
if[ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"

5.赋予上述sh文件执行权限:
chmod +x xxx.sh
执行程序时运行这个sh文件即可。

扩展

环境变量的部署,只需要在上面第4步中的sh文件中添加命令即可;
桌面快捷方式的实现,只需要拷贝第4步的sh文件到桌面,增加一个进入目录的语句即可;
如果拷贝到无Qt环境的主机上运行,还需注意ldd命令没有拷贝的环境库,也就是platforms文件夹及两个链接文件。可见文章【https://blog.csdn.net/lusanshui/article/details/84988017 】
————————————————
版权声明:本文为CSDN博主「lusanshui」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lusanshui/article/details/86591504

你可能感兴趣的:(Linux,linux,运维,服务器)