1. 可执行文件 edas
2. ldd命令查看需要的依赖库
3. 将ldd查询到的所有需要的库导出
打包脚本 pack.sh:
#!/bin/sh
exe="edas" #发布的程序名称
des="/EDAS" #你的路径(lib文件夹需要自己创建)
mkdir -p ${des}
mkdir -p ${des}/{output,log} #创建文件依赖的文件夹,可以注掉
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
\cp $deplist $des
\cp $exe $des #拷贝程序文件
#下面是拷贝程序的配置文件,可以注掉
\cp edas.conf $des
\cp neip.conf $des
4.编写.sh文档并将它放在与步骤3同一目录下(.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 "$@"
运行实例:
./edas.sh -c 0x3c000 -- -f edas.conf
注:
ldd 可能无法将所有环境运行的相关库文件导出,库文件还有其他的库文件依赖
若是有相关库文件却找不到,可以去添加配置文件 sudo vim /etc/ld.so.conf.d/*.conf 或者添加环境变量