小程序:获取动态库/程序依赖的所有动态库
来源:互联网 发布:数据分析与商务智能 编辑:程序博客网 时间:2024/04/27 23:19
转载请注明出处:http://blog.csdn.net/jmppok/article/details/17716803
在编写一个动态库时,可能会引用一些第三方的动态库。而在非开发环境中运行时,必须拷贝所有依赖的动态库,否则程序无法运行。我们可以通过ldd命令查看依赖的动态库信息,但一个个查看,拷贝十分繁琐。而且如果依赖的动态库又依赖其他动态库,问题就会变得十分混乱。作者通过一个Python小程序来帮助简化这个问题。
1.使用
getlibs.py lib libs_dir
通过运行该py程序,会拷贝指定lib所依赖的所有动态库到指定目录(libs_dir)
可通过./libs文件,设置正则表达式,只拷贝需要的那些lib。
2.原理
原理非常简单:
(1.通过python的os调用ldd命令,分析lib依赖的所有动态库;
(2.针对这些依赖的lib,第归调用ldd,分析;
(3.将符合条件的lib,拷贝至指定目录。
3.代码
#!/usr/bin/pythonmport os,sys,stringlib_patterns=[]def loadLibPattens(): f = open("libs"); global lib_patterns lib_patterns = f.readlines(); f.close()def getlibs(lib,dir): libs = os.popen("ldd "+lib).readlines() for line in libs: line = line.strip('\n') line = line.strip('\t') index = line.find(" => ") if(index < 0): continue libName = line[0:index] libPath = line[index+4:] libPath = libPath[0:libPath.find(" (")] for l in lib_patterns: l = l.strip('\n') if(libName.find(l) >= 0): #print libName, l os.popen("cp "+libPath+" "+dir) getlibs(libName,dir)if __name__=='__main__': if(len(sys.argv)<3): print "Usage: get_files_in_vcxproj.py file" else: loadLibPattens() getlibs(sys.argv[1],sys.argv[2])
4.测试
1 0
- 小程序:获取动态库/程序依赖的所有动态库
- 找到程序或动态库所依赖的所有动态库
- 检查程序对动态库的依赖
- 查看程序依赖的动态库—dumpbin和depends
- 查看程序依赖的动态库—dumpbin和depends
- Qt程序自动寻找依赖的动态库
- 奇妙的动态小程序
- linux命令之查看程序动态库依赖-ldd
- 动态排序小程序
- 动态库Dll和exe程序在vs2008下的依赖
- 查看arm平台下程序依赖的动态库有哪些
- 查看可执行程序(ELF)或动态库所依赖动态库——ldd脚本分析
- python 遍历 程序 动态库依赖 ,减少不必要依赖,减少启动时间
- C#.动态获取程序的图标
- 动态调用DLL时不能加载依赖的程序集
- 动态调用DLL时不能加载依赖的程序集
- 【微信小程序】小程序的动态传参
- 编写动态链接库的程序基本知识
- jquery的lazyload插件分步显示图片的方法
- linux图形界面字符界面切换
- sicily 1232.Electrical Outlets
- recover deleted file on ext3
- 我是一个菜鸟,我该何去何从?
- 小程序:获取动态库/程序依赖的所有动态库
- oracle 导入数据时对 & 和 ' 特殊字符处理
- php header的用法小结
- Linux C编程小例子——pwd命令的实现
- 关联规则学习
- Guidelines for Redis clients with support for Redis Sentinel
- 模糊查詢、清空功能 、全選和取消
- Delphi - 数组 详解
- No content provider found for permission revoke: