问题:Linux拷贝程序或so依赖的所有库脚本
环境:
系统:centos7.5
环境:
问题分析:
Linux下写程序经常碰到需要copy程序或者so到其他环境使用,会有很多依赖库需要拷贝,使用脚本可以轻松实现
解决步骤:
一、脚本如下:
vim copy_so.sh
!/bin/sh
so_list=$( ldd $1 | awk '{if (match($3, "/")){ print $3}}' )
cp -L -n $so_list $2
# -L表示拷贝,软链接会直接copy最终文件
# -n表示不覆盖已有文件
二、使用方式:
以libtest.so为例
sh ./copy_so.sh libtest.so ./so_dir
参数一是需要ldd的执行文件或者so, 参数二是拷贝到的文件夹。
tips:
如果脚本执行失败,需要先给程序或者so添加执行权限。chmod +x libtest.so