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