参考文献:
假设编译了一个 cmd
可执行文件,想要把它交给其他人运行。
exe
,并把 cmd
复制进去lib
文件夹,用于存储依赖的动态库packlib.sh
文件,找出 cmd
所依赖的动态库#!/bin/sh
exe="./cmd" #发布的程序名称
des="./lib" #创建文件夹的位置
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $deplist $des
run.sh
文件,#!/bin/sh
appname=cmd #要运行的程序名
dirname="$PWD"/lib #依赖库路径
LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LIBRARY_PATH}
"$PWD"/$appname "$@"
下面这个写法更好些,#!/bin/sh
SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SHELL_FOLDER}/lib
"$SHELL_FOLDER"/cmd "$@"
cmd
文件