将封装好的库部署到另一台设备时,快速打包依赖

命令:

ldd build/libcaffe_yolo.so | cut -d ">" -f 2 | grep lib | cut -d "(" -f 1 | xargs tar -chvf caffe_yolo_dep.tar

其中build/libcaffe_yolo.so是我要发布的。

ldd 列出所有依赖:

libgnutls.so.26 => /usr/lib/arm-linux-gnueabihf/libgnutls.so.26 (0xaf341000)
libbz2.so.1.0 => /lib/arm-linux-gnueabihf/libbz2.so.1.0 (0xaf32d000)
libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0xaf2c6000)
libxcb.so.1 => /usr/lib/arm-linux-gnueabihf/libxcb.so.1 (0xaf2ab000)
libpixman-1.so.0 => /usr/lib/arm-linux-gnueabihf/libpixman-1.so.0 (0xaf235000)
libxcb-shm.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-shm.so.0 (0xaf22a000)
libxcb-render.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-render.so.0 (0xaf21c000)
libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0xaf1fe000)
libresolv.so.2 => /lib/arm-linux-gnueabihf/libresolv.so.2 (0xaf1e4000)
...

cut 裁剪出每一行的动态库路径;

xargs 捕获cut命令的输出,传递给tar命令,tar打包所有动态库 

其他:

  1. 目标库拷贝到另一个设备上,加载运行,自动(在可见路径中)搜索依赖库,无需将依赖放到新设备的对应路径。
  2. 我将libcaffe_yolo.so拷贝到另一个设备上后ldd,发现与原设备的依赖库数量相差很大,多了一个tbb库,但少了近100个其他库。搞不明白,很惊奇。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值