在Linux下用sh打包链接库函数移植可执行文件

1.利用qt生成可执行文件,使用release的方式编译出可执行文件,然后新建一个文件夹,将可执行文件拷贝进去备用。

小编这里生成的文件是这样的:
在这里插入图片描述

2.利用脚本文件

2.1新建文件
2.1.1pask.sh
2.1.2test2.sh 这个脚本文件名必须和要发布的程序名字相同,所以为 Server
新建文件后,文件夹包含内容如下:
在这里插入图片描述
2.2 添加脚本
向pack.sh文件里添加以下内容:

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

然后向test2.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 "$@"

在这里插入图片描述
执行脚本
终端进入文件夹目录,运行:

sh ./pack.sh

可执行文件依赖的链接库将会拷贝到所在的目录,如图:
打包发布
将上面整个文件夹,复制拷贝到其他linux系统,在文件夹路径内终端运行:

./test2.sh

猜你喜欢

转载自blog.csdn.net/weixin_44419695/article/details/88760155
今日推荐