linux下将可执行程序进行打包

1. 可执行文件 mpirun

2. ldd命令查看需要的依赖库

3. 将ldd查询到的所有需要的库导出

    脚本文件:

可以使用脚本cp.sh将ldd打印出来的依赖库复制到指定路径,cp.sh内容如下:

#!/bin/sh

exe="mpirun" #发布的程序名称

des="./lib" #你的路径(lib文件夹需要自己创建)

deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')

cp $deplist $des

4. 编写.sh文档并将它放在与步骤3同一目录下(.sh文件命名必须与可执行文件名字一样)

.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 "$@"

执行:

./mpirun.sh --version

注:

ldd 可能无法将所有环境运行的相关库文件导出,库文件还有其他的库文件依赖

若是有相关库文件却找不到,可以去添加配置文件 sudo vim /etc/ld.so.conf.d/*.conf  或者添加环境变量

可参考:https://www.cnblogs.com/x_wukong/p/4722903.html

报错:

/usr/bin/ld cannot find 解决:https://blog.csdn.net/mzwang123/article/details/6702889

缺少相关库文件

参考文档:https://blog.csdn.net/tingy123/article/details/99707581

原文地址:https://www.cnblogs.com/yu121/p/13580128.html