python 遍历 程序 动态库依赖 ,减少不必要依赖,减少启动时间

import os
import sys
import subprocess
import commands


currentdir=os.getcwd()
print currentdir

#os.environ["PATH"]= "/home/xa00010/563/tcl/tcl_72563_trunk/TCL_Linux_EM_DriverBase/system/lib" + ":" + os.environ["PATH"]
#print (os.environ["PATH"])

'''
output = os.popen("find /home/xa00010/563/tcl/tcl_72563_trunk/TCL_Linux_EM_DriverBase/system/lib -name libgstbase-1.0.so.0")
print output.readlines()[0].re
quit()
'''


def searchandcopy(filename):
    ss= "find /home/xa00010/563/tcl/tcl_72563_trunk/TCL_Linux_EM_DriverBase/system/lib -name %s"%(filename)

    output = os.popen(ss)
    b=output.readlines()
    a=len(b)
    if  int(a) > 0:
      scp="cp %s %s"%(b[0].strip('\n'),currentdir)
      #print scp
      os.system(scp)
      getso(filename)
    else:
      print ss
      print "---------------------------------not find %s"%(filename)



commonlib=('librt.so.1','libpthread.so.0','libm.so.6','libdl.so.2','libc.so.6','ld-linux-armhf.so.3','libgcc_s.so.1','libstdc++.so.6')

def handleone(line):
    if line.find("Shared library")>-1:
        pos1 = line.find('[')
        filename=line[pos1+1:-2]
        print (filename)
        getso(filename)


def getso(filename):
   for name1 in commonlib:
       if name1==filename:
           return
   #if(filename=="libNDAL_EX.so"):
   #  quit()
   (status, output) = commands.getstatusoutput("readelf -d %s"%(filename))
   
   if status==0:
     output=os.popen("readelf -d %s"%(filename))
     for line in output.readlines():
      handleone(line)
   else:
     searchandcopy(filename)


getso("libfpp.so")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值