前言
在Windows平台下,Qt向我们提供了 windeployqt 工具来帮助我们链接动态库文件到我们需要发布的软件目录中,但在Liunx平台下,现目前我还没有发现有这样一个工具,需要我们自己去实现这个过程,或许可以考虑自己写一个工具集。来执行这个操作。
简单版
# 以脚本的方式来执行自动拷贝依赖动态库的操作
# <1> 新建一个 pack.sh 文件,并写入以下内容
#!/bin/sh
#你需要发布的程序名称
exe="testting"
#创建文件夹的位置
des="/home/badboy/badboy/code/qt/ui/build/relese"
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $deplist $des
# <2> 新建一个发布版本程序包名一致的 .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 "$@"