如何查看linux函数对应的库文件
refer: http://bbs.csdn.net/topics/330158874
查看elf文件对应的动态库文件: ldd <文件名> 动态库文件
你如果有足够的时间可以用 ar 将gcc编译程序时链接的相关静态库解压,能解压出很多函数。在与你的*.h中的函数对照。找到到底谁属于谁。
当我遇到一个函数不知道所属的库的时候,我会先找到头文件所属的包,然后看看那个包(或者相关包)的.a或者.so文件有哪些,然后:
objdump -x 库文件 | grep 函数名
1、man htons,里面讲的是arpa/inet.h;
2、假设你用的是RPM类型的系统:rpm -qa --filesbypkg | grep arpa/inet.h,你就看见了一个或者几个包提供这个文件,现在我看到的是glibc-headers(RHEL5)
3、貌似这个glibc-headers只是个包含头文件的软件包,看看其他类似的软件包是什么:rpm -qa | grep glibc
4、我看见了glibc,glibc-devel,glibc-common,觉得glibc-devel肯定是提供.a(静态链接)的
5、rpm -q --filesbypkg glibc-devel| grep \.a$ | awk '{print $2}' |xargs grep htons找到所有带htons的静态库文件
6、只有一个:/usr/lib/libc.a
7、如果有好几个的话,用objdump -x看看符号表
多说几句——在debian类型的机器上用dpkg或者apt-files也是类似的过程,有时候需要一些常识或者猜测,比如*-devel包都是提供头文件和静态链接库的,对应的不带-devel的包都是提供.so的。
如果你想要找出被一个运行中的进程载入的共享库,你可以使用pldd命令,它会显示出在运行时被载入一个进程里的所有共享对象。 sudo pldd <PID>
或者,也可以选择一个叫做pmap的命令行工具。它报告一个进程的内存映射,也能显示出运行进程的库文件依赖。 sudo pmap <PID>
refer: http://blog.csdn.net/changli_90/article/details/9178017
1. 最好知道静态库的原文件(.c),要是知道声明文件(.h)也比较好。
2. ar -t YourFile 看其结构,找其中的原文件。
3. 可以将库文件下到本地用UE打开,然后你就找吧。
另外,看动态库用 nm -D lib*.so
转载于:https://www.cnblogs.com/ginkgo-leaf/p/7683414.html
如何查看linux函数对应的库文件相关推荐
- Linux 系统上的库文件生成与使用
什么是库文件? 库是一组预先编译好的方法的集合.Linux系统存储的库的位置一般在:/lib 和 /usr/lib. 在 64 位的系统上有些库也可能被存储在/usr/lib64 下.库的头文件一般会 ...
- Linux系统上的库文件的生成与使用
1.什么是库文件 库是一组预先编译好的方法的集合.Linux系统存储的库的位置一般在:/lib 和 /usr/lib. 在 64 位的系统上有些库也可能被存储在/usr/lib64 下.库的头文件一般 ...
- Linux系统中添加库文件路径的方法
库文件在链接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的.一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用 ...
- linux 提示库文件,Linux系统下确实库文件的解决办法
解决/usr/bin/ld: cannot find -lxxx 在linux环境编译应用程式或lib的source code时常常会出现如下的错误信息: •/usr/bin/ld: cannot f ...
- Java使用opencv调用微信扫描二维码引擎,附带windows和linux需要的动态库文件
前言 最近公司项目有一个需求,要用二维码传递数据.于是使用了zxing生成和解析二维码,但是zxing扫描二维码原图还可以,一旦扫描用户使用手机拍摄的二维码,识别率急剧下降.尝试了对拍摄的照片进行降噪 ...
- linux缺失库文件,Linux系统下确实库文件的解决办法
解决/usr/bin/ld: cannot find -lxxx 在linux环境编译应用程式或lib的source code时常常会出现如下的错误信息: •/usr/bin/ld: cannot f ...
- linux mysql makefile_Linux安装库文件(环境变量和makefile)
CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项. 这两个变量实际上涵盖了编译和汇编两个步骤. CFLAGS/CPPFLAGS: 指定头文件(.h文件)的路 ...
- 查看linux内核的glibc库,查看当前系统的glibc版本
有时我们经常需要查看当前系统的glibc版本,可以这样查看: /lib/libc.so.6 有时:/lib/x86-64-linux/libc.so.6 把这个文件当命令执行一下 为什么这个库可以直接 ...
- 查看linux文件目录的大小和文件夹包含的文件数
du -h --max-depth=1|sort -n du -h --max-depth=1|grep G|sort -n df -h 清理/var/log # 清除# 一定要以root身份来运行这 ...
最新文章
- sql server 2005 T-SQL CAST 和 CONVERT (Transact-SQL)
- 14岁印度裔女孩因新冠潜在疗法赢得16万奖金,通过信息学筛出病毒先导分子
- svn的merge使用例子
- Hazelcast介绍与使用
- 海尔智慧家庭食联网:为每1个家庭配备专属健康顾问
- matlab常用函数——矩阵函数
- 域控计算机策略转换成用户策略,windows组策略实验-本地组策略和域控组策略
- java 微信二次分享_微信二次分享
- php中ignore_user_abort函数的用法
- JavaSE学习总结(八)—— 异常处理(Exception)
- apl脚本入门-控制语句
- 学校计算机教师事迹材料,中学信息技术优秀教师事迹材料:信念在“用心”中闪光...
- python如何向服务器发送文件,在Python中使用套接字向服务器发送文件
- 2021年华为杯数学建模参赛经验分享
- Arc consistency in CSPs
- Rime(1):介绍与安装
- C语言课设--藏书管理信息系统
- 微软提出基于知识图谱的深度神经网络DKN用于新闻推荐
- 【我的Android进阶之旅】SQLite出错时候的错误码整理
- CentOS增加虚拟内存
热门文章
- list转map stream_advancedday10可变参数不可变集合及Stream流
- 深圳网络推广提醒大家做好URL标准化,网站排名“事半功倍”!
- 企业网络推广中关键词“出镜率”高会影响企业网络推广吗?
- 网络推广外包——网络推广外包专员是如何发布软文外链的呢?
- 移动端、PC端网站优化需齐头并进
- 如何查看笔记本电脑配置参数_2020双十一(小白/学生)如何选购笔记本电脑?5000元预算哪款笔记本配置值得入手?...
- linux下进程的tty,Linux下TTY驱动程序分析
- java兰顿蚂蚁解题思路_程序员面试金典 - 面试题 16.22. 兰顿蚂蚁(deque模拟)
- matlab程序崩溃怎么解决,java – 如何避免MATLAB崩溃打开太多的数字?
- java的mythread_java多线程 - myShadow - OSCHINA - 中文开源技术交流社区