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

posted @   半日闲1  阅读(2223)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示